添加通道序号

main
ZHANGXUXU\95193 4 months ago
parent 4ebb5d95be
commit 7ec3b1f645

@ -114,7 +114,7 @@ class MainWindow(QMainWindow):
widget.setObjectName('varWidget') widget.setObjectName('varWidget')
self.varManageTabWidget.addTab(widget, name) self.varManageTabWidget.addTab(widget, name)
self.varManageTabWidget.addTab(self.analogWidget,'AIAO') self.varManageTabWidget.addTab(self.analogWidget,'IO')
self.varManageTabWidget.addTab(self.tcrtdWidget,'TCRTD') self.varManageTabWidget.addTab(self.tcrtdWidget,'TCRTD')
self.varManageTabWidget.addTab(self.hartWidget,'HART读取') self.varManageTabWidget.addTab(self.hartWidget,'HART读取')
self.varManageTabWidget.addTab(self.hartsimulateWidget,'HART模拟') self.varManageTabWidget.addTab(self.hartsimulateWidget,'HART模拟')

@ -3,6 +3,7 @@ import qtawesome
from PyQt5 import QtGui from PyQt5 import QtGui
from PyQt5.QtCore import Qt, QVariant from PyQt5.QtCore import Qt, QVariant
from PyQt5.QtWidgets import QMessageBox from PyQt5.QtWidgets import QMessageBox
from websocket import send
from protocol.TCP.Analog import getRealAO from protocol.TCP.Analog import getRealAO
from model.ProjectModel.VarManage import * from model.ProjectModel.VarManage import *
from UI.VarManages.ModbusModel import * from UI.VarManages.ModbusModel import *
@ -19,6 +20,7 @@ class AnalogModel(VarTableModel):
''' '''
VarTableModel.__init__(self, header, data, table = table) VarTableModel.__init__(self, header, data, table = table)
def initTable(self): def initTable(self):
self.datas = [] self.datas = []
proType = Globals.getValue('currentProType') proType = Globals.getValue('currentProType')
@ -77,7 +79,7 @@ class AnalogModel(VarTableModel):
if index.column() == 0: if index.column() == 0:
return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable
if index.row() in self.editableList and index.column() or index.column() == 1: if index.row() in self.editableList and index.column() or index.column() == 1:
if index.column() == 5: if index.column() == 6 or index.column() == 4:
return Qt.ItemIsEnabled return Qt.ItemIsEnabled
return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEditable return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEditable
return Qt.ItemIsEnabled return Qt.ItemIsEnabled
@ -99,7 +101,7 @@ class AnalogButtonDelegate(TcRtdButtonDelegate):
model.editableList.append(sender.index[0]) model.editableList.append(sender.index[0])
else: else:
varMes = model.datas[sender.index[0]] varMes = model.datas[sender.index[0]]
name, des, varType, min, max = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]) name,channelNumber, des, varType, min, max = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8])
if not name or not varType: if not name or not varType:
reply = QMessageBox.question(self.parent(), reply = QMessageBox.question(self.parent(),
'警告', '警告',
@ -109,9 +111,24 @@ class AnalogButtonDelegate(TcRtdButtonDelegate):
sender.isEdit = True sender.isEdit = True
model.editableList.remove(sender.index[0]) model.editableList.remove(sender.index[0])
if sender.oldName: if sender.oldName:
AnalogManage.editVar(name=sender.oldName, Nname=name, des=des, varType=varType, min=min, max=max) if sender.oldName == name:
AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber,
des=des, varType=varType, min=min, max=max)
else:
if GlobalVarManager.isVarNameExist(name):
QMessageBox.information(self.parent(), '提示', '已有同名变量')
return
else:
AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber,
des=des, varType=varType, min=min, max=max)
else: else:
AnalogManage.createVar(varName=name, varType=varType, des=des, min=min, max=max) if GlobalVarManager.isVarNameExist(name):
QMessageBox.information(self.parent(), '提示', '已有同名变量')
return
else:
AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber,
des=des, varType=varType, min=min, max=max)
sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2')) sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2'))
rowIndex = sender.index[0] rowIndex = sender.index[0]
varMes = AnalogManage.getByName(name) varMes = AnalogManage.getByName(name)

@ -580,7 +580,7 @@ class HartVarModelBox(ModbusVarModelBox):
self.parent().model.datas[sender.index[0]][sender.index[1]] = text self.parent().model.datas[sender.index[0]][sender.index[1]] = text
class TcRtdVarModelBox(ModbusVarModelBox): class TcRtdVarModelBox(ModbusVarModelBox):
def __init__(self, parent=None, comBoxColumn = 9): def __init__(self, parent=None, comBoxColumn = 10):
super(TcRtdVarModelBox, self).__init__(parent) super(TcRtdVarModelBox, self).__init__(parent)
self.comBoxColumn = comBoxColumn self.comBoxColumn = comBoxColumn
def indexChange(self): def indexChange(self):
@ -593,7 +593,7 @@ class TcRtdVarModelBox(ModbusVarModelBox):
class AnalogVarModelBox(ModbusVarModelBox): class AnalogVarModelBox(ModbusVarModelBox):
def __init__(self, parent=None, comBoxColumn = 8): def __init__(self, parent=None, comBoxColumn = 9):
super(AnalogVarModelBox, self).__init__(parent) super(AnalogVarModelBox, self).__init__(parent)
self.comBoxColumn = comBoxColumn self.comBoxColumn = comBoxColumn
def indexChange(self): def indexChange(self):

@ -1,19 +1,11 @@
import typing
import sys
import qtawesome import qtawesome
from PyQt5 import QtGui,QtCore,QtWidgets from PyQt5.QtCore import Qt, QVariant, QSize
from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, QVariant, QSize from PyQt5.QtWidgets import QHBoxLayout, QWidget, QMessageBox, QComboBox
from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QTableView, QMessageBox, QComboBox
from protocol.TCP.TemToMv import temToMv from protocol.TCP.TemToMv import temToMv
from protocol.TCP.Analog import getRealAO
from model.ProjectModel.VarManage import * from model.ProjectModel.VarManage import *
from UI.VarManages.ModbusModel import * from UI.VarManages.ModbusModel import *
from utils import Globals from utils import Globals
import re import re
@ -33,6 +25,7 @@ class TcRtdModel(VarTableModel):
# if proType in ['5']: # if proType in ['5']:
varDatas = TcRtdManage.getAllVar() varDatas = TcRtdManage.getAllVar()
if not varDatas: if not varDatas:
# self.layoutChanged.emit() # self.layoutChanged.emit()
self.table.proxy.invalidate() self.table.proxy.invalidate()
@ -86,10 +79,14 @@ class TcRtdModel(VarTableModel):
if index.column() == 0: if index.column() == 0:
return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable
if index.row() in self.editableList and index.column() or index.column() == 1 or index.column() == 8: if index.row() in self.editableList and index.column() or index.column() == 1 or index.column() == 8:
if index.column() == 4:
return Qt.ItemIsEnabled
return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEditable return Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEditable
return Qt.ItemIsEnabled return Qt.ItemIsEnabled
class TcRtdButtonDelegate(VarButtonDelegate): class TcRtdButtonDelegate(VarButtonDelegate):
"""该类用于向单元格中添加按钮 任务表格""" """该类用于向单元格中添加按钮 任务表格"""
@ -204,7 +201,7 @@ class TcRtdButtonDelegate(VarButtonDelegate):
model.editableList.append(sender.index[0]) model.editableList.append(sender.index[0])
else: else:
varMes = model.datas[sender.index[0]] varMes = model.datas[sender.index[0]]
name, des, varType, min, max, compensationVar = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]) name, channelNumber, des, varType, min, max, compensationVar = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9])
if not name or not varType: if not name or not varType:
reply = QMessageBox.question(self.parent(), reply = QMessageBox.question(self.parent(),
'警告', '警告',
@ -214,9 +211,25 @@ class TcRtdButtonDelegate(VarButtonDelegate):
sender.isEdit = True sender.isEdit = True
model.editableList.remove(sender.index[0]) model.editableList.remove(sender.index[0])
if sender.oldName: if sender.oldName:
TcRtdManage.editVar(name=sender.oldName, Nname=name, des=des, varType=varType, min=min, max=max, compensationVar = compensationVar) if sender.oldName == name:
TcRtdManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, des=des,
varType=varType, min=min, max=max, compensationVar = compensationVar)
else:
if GlobalVarManager.isVarNameExist(name):
QMessageBox.information(self.parent(), '提示', '已有同名变量')
return
else:
TcRtdManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, des=des,
varType=varType, min=min, max=max, compensationVar = compensationVar)
else: else:
TcRtdManage.createVar(varName=name, varType=varType, des=des, min=min, max=max, compensationVar = compensationVar) if GlobalVarManager.isVarNameExist(name):
QMessageBox.information(self.parent(), '提示', '已有同名变量')
return
else:
TcRtdManage.createVar(varName=name, channelNumber = channelNumber, varType=varType, des=des,
min=min, max=max, compensationVar = compensationVar)
sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2')) sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2'))
rowIndex = sender.index[0] rowIndex = sender.index[0]
varMes = TcRtdManage.getByName(name) varMes = TcRtdManage.getByName(name)

@ -136,7 +136,7 @@ class HartTableView(VarTableView):
class TcRtdTableView(VarTableView): class TcRtdTableView(VarTableView):
def __init__(self, parent=None): def __init__(self, parent=None):
super(TcRtdTableView, self).__init__(parent) super(TcRtdTableView, self).__init__(parent)
self.setItemDelegateForColumn(5, TcRtdTypeDelegate(self)) self.setItemDelegateForColumn(6, TcRtdTypeDelegate(self))
self.valueList = [0] * 16 self.valueList = [0] * 16
self.mvList = [0] * 16 self.mvList = [0] * 16
self.workThread = RTDTCThread(self) self.workThread = RTDTCThread(self)
@ -145,24 +145,24 @@ class TcRtdTableView(VarTableView):
def setupColumnWidths(self): def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch) self.header.setSectionResizeMode(QHeaderView.Stretch)
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(10, TcRtdButtonDelegate(self)) self.setItemDelegateForColumn(11, TcRtdButtonDelegate(self))
self.setItemDelegateForColumn(9, TcRtdVarModelBox(self)) self.setItemDelegateForColumn(10, TcRtdVarModelBox(self))
self.model = TcRtdModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '补偿值', '值类型','操作'], [], table=self) self.model = TcRtdModel(['ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '补偿值', '值类型','操作'], [], table=self)
class AnalogTableView(VarTableView): class AnalogTableView(VarTableView):
def __init__(self, parent=None): def __init__(self, parent=None):
super(AnalogTableView, self).__init__(parent) super(AnalogTableView, self).__init__(parent)
self.valueList = [0] * 8 + [0] * 8 + [0] * 8 self.valueList = [0] * 8 + [0] * 8 + [0] * 16 + [0] * 8 + [0] * 8 + [0] * 8
self.realList = [0] * 8 + [0] * 8 + [0] * 8 self.realList = [0] * 8 + [0] * 8 + [0] * 16 + [0] * 8 + [0] * 8 + [0] * 8
self.workThread = AnalogThread(self) self.workThread = AnalogThread(self)
Globals.setValue('AnalogThread', self.workThread) Globals.setValue('AnalogThread', self.workThread)
def setupColumnWidths(self): def setupColumnWidths(self):
self.header.setSectionResizeMode(QHeaderView.Stretch) self.header.setSectionResizeMode(QHeaderView.Stretch)
def setHeader(self): def setHeader(self):
self.setItemDelegateForColumn(9, AnalogButtonDelegate(self)) self.setItemDelegateForColumn(10, AnalogButtonDelegate(self))
self.setItemDelegateForColumn(8, AnalogVarModelBox(self)) self.setItemDelegateForColumn(9, AnalogVarModelBox(self))
self.model = AnalogModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '值类型', '操作'], [], table=self) self.model = AnalogModel(['ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '值类型', '操作'], [], table=self)
class HartSimulateTableView(VarTableView): class HartSimulateTableView(VarTableView):

@ -388,7 +388,7 @@ class TcRtdWidgets(VarWidgets):
self.horizontalHeader.sectionClicked.connect(self.on_view_horizontalHeader_sectionClicked) self.horizontalHeader.sectionClicked.connect(self.on_view_horizontalHeader_sectionClicked)
def createVar(self): def createVar(self):
self.varView.model.append_data(['', '', '', '', '', '', '', '', '']) self.varView.model.append_data(['', '', '', '', '', '', '', '', '',''])
def forceVar(self): def forceVar(self):
# print(self.varView.model.datas) # print(self.varView.model.datas)
@ -549,97 +549,6 @@ class AnalogWidgets(VarWidgets):
class FFSimulateWidgets(VarWidgets):
def __init__(self, parent=None):
super(FFSimulateWidgets, self).__init__(parent)
def setupUI(self):
self.setAttribute(Qt.WA_StyledBackground, True)
self.forceBtn = QPushButton(QIcon(':/static/start.png'), '批量强制')
self.forceBtn.setObjectName('forceBtn')
self.forceBtn.setIconSize(QSize(22, 22))
self.forceBtn.clicked.connect(self.forceVar)
self.startProtocolBtn = QPushButton(QIcon(':/static/startProtocol.png'), '开始通讯')
self.startProtocolBtn.setObjectName('startProtocolBtn')
self.startProtocolBtn.setIconSize(QSize(22, 22))
self.startProtocolBtn.clicked.connect(self.startProtocol)
self.clearBtn = QPushButton(QIcon(':/static/clear.png'), '清除颜色')
self.clearBtn.setObjectName('clearBtn')
self.clearBtn.setIconSize(QSize(22, 22))
self.clearBtn.clicked.connect(self.clearColour)
self.varView = FFSimulateTableView()
self.varView.setObjectName('FFSimulateTable')
self.proxy = QtCore.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.varView.model)
self.varView.setModel(self.proxy)
self.varView.proxy = self.proxy
self.timer = QTimer(self)
# 将定时器超时信号与槽函数showTime()连接
self.timer.timeout.connect(self.proxy.invalidate)
self.timer.start(50) # 启动timer
Globals.setValue('FFSimulateTable', self.varView)
self.gridLayout = QtWidgets.QGridLayout(self)
# self.gridLayout.addWidget(self.createBtn, 0, 0, 1, 1)
self.gridLayout.addWidget(self.forceBtn, 0, 0, 1, 1)
self.gridLayout.addWidget(self.startProtocolBtn, 0, 1, 1, 1)
self.gridLayout.addWidget(self.clearBtn, 0, 2, 1, 1)
self.gridLayout.addWidget(self.varView, 1, 0, 10, 26)
self.gridLayout.setSpacing(20)
self.gridLayout.setContentsMargins(20, 30, 20, 20)
self.horizontalHeader = self.varView.horizontalHeader()
self.horizontalHeader.sectionClicked.connect(self.on_view_horizontalHeader_sectionClicked)
def createVar(self):
self.varView.model.append_data(['', '', '', '', '', '', '', '', ''])
def forceVar(self):
check = [i for i,x in enumerate(self.varView.model.checkList) if x == 'Checked']
forceVars = Globals.getValue('forceVars')
for i in check:
value = self.varView.model.datas[i][1]
if i > 7:
reply = QMessageBox.question(self.parent(),
'警告',
"该变量无法强制",
QMessageBox.Yes)
return
pattern = re.compile(r'[^0-9\.-]+')
if not value or re.findall(pattern, str(value)):
reply = QMessageBox.question(self.parent(),
'警告',
"请输入强制值或数字",
QMessageBox.Yes)
return
if i > 3:
if not re.match('^[01]+$', str(value)):
reply = QMessageBox.question(self.parent(),
'警告',
"请输入0或1",
QMessageBox.Yes)
return
try:
self.varView.workThread.FFSimulate.writeValue(i, value)
except:
reply = QMessageBox.question(self.parent(),
'警告',
"请先打开通讯",
QMessageBox.Yes)
return
self.varView.valueList[i] = float(value)
forceVars.add(self.varView.model.datas[i][3])
Globals.setValue('forceVars', forceVars)
class HartSimulateWidgets(VarWidgets): class HartSimulateWidgets(VarWidgets):
def __init__(self, parent=None): def __init__(self, parent=None):

@ -277,16 +277,17 @@ class TcRtdManage(object):
super(TcRtdManage, self).__init__() super(TcRtdManage, self).__init__()
@classmethod @classmethod
def createVar(self, varName, varType, des, min, max, compensationVar, varModel): def createVar(self, varName, channelNumber, varType, des, min, max, compensationVar, varModel):
# 创建变量 # 创建变量
name = str(varName) name = str(varName)
des = str(des) des = str(des)
channelNumber = str(channelNumber)
varModel = str(varModel) varModel = str(varModel)
if TcRtdVar.getByName(name): if TcRtdVar.getByName(name):
print('已有同名变量') print('已有同名变量')
else: else:
tcRtdVarType = TcRtdVar() tcRtdVarType = TcRtdVar()
tcRtdVarType.createVar(varName = varName, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel) tcRtdVarType.createVar(varName = varName, channelNumber=channelNumber, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel)
@classmethod @classmethod
def getAllVar(self): def getAllVar(self):
@ -296,7 +297,7 @@ class TcRtdManage(object):
return return
l = [] l = []
for var in vars: for var in vars:
l.append([var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel]) l.append([var.id, var.varName, var.channelNumber,var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel])
return l return l
@ -309,18 +310,19 @@ class TcRtdManage(object):
@classmethod @classmethod
def editVar(self, name, Nname, des, varType, min, max, compensationVar, varModel): def editVar(self, name, Nname, channelNumber, des, varType, min, max, compensationVar):
# 修改变量信息 # 修改变量信息
name = str(name) name = str(name)
Nname = str(Nname) Nname = str(Nname)
channelNumber = str(channelNumber)
des = str(des) des = str(des)
varType = str(varType) varType = str(varType)
min = str(min) min = str(min)
max = str(max) max = str(max)
compensationVar = str(compensationVar) compensationVar = str(compensationVar)
varModel = str(varModel)
if Nname == name: if Nname == name:
TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, varModel = varModel).where(TcRtdVar.varName == name).execute() TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute()
elif TcRtdVar.getByName(Nname): elif TcRtdVar.getByName(Nname):
print('已有同名变量') print('已有同名变量')
return return
@ -328,7 +330,7 @@ class TcRtdManage(object):
print('不存在的变量') print('不存在的变量')
return return
else: else:
TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, varModel = varModel).where(TcRtdVar.varName == name).execute() TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute()
@classmethod @classmethod
def getByName(self, name): def getByName(self, name):
@ -336,18 +338,18 @@ class TcRtdManage(object):
var = TcRtdVar.getByName(name) var = TcRtdVar.getByName(name)
if var: if var:
return [var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel] return [var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel]
else: else:
return False return False
def initVar(self): def initVar(self):
# 创建变量 # 创建变量
for i in range(1, 9): for i in range(1, 9):
name = 'Value' + str(i) name = '热偶输出' + str(i)
self.createVar(varName=name, varType='R', des='TC', min='100', max='200', compensationVar = '0', varModel = '本地值') self.createVar(varName=name, channelNumber=str(i), varType='R', des='TC', min='100', max='200', compensationVar = '0', varModel = '本地值')
for i in range(9, 17): for i in range(1, 9):
name = 'Value' + str(i) name = '热阻输出' + str(i)
self.createVar(varName=name, varType='PT100', des='RTD', min='100', max='200', compensationVar = '0', varModel = '本地值') self.createVar(varName=name, channelNumber=str(i), varType='PT100', des='RTD', min='100', max='200', compensationVar = '0', varModel = '本地值')
@classmethod @classmethod
def editvarType(self, name, varType): def editvarType(self, name, varType):
@ -364,16 +366,17 @@ class AnalogManage(object):
super(AnalogManage, self).__init__() super(AnalogManage, self).__init__()
@classmethod @classmethod
def createVar(self, varName, varType, des, min, max, varModel): def createVar(self, varName, channelNumber, varType, des, min, max, varModel):
# 创建变量 # 创建变量
name = str(varName) name = str(varName)
channelNumber = str(channelNumber)
des = str(des) des = str(des)
varModel = str(varModel) varModel = str(varModel)
if AnalogVar.getByName(name): # if AnalogVar.getByName(name):
print('已有同名变量') # print('已有同名变量')
else: # else:
analogVarType = AnalogVar() analogVarType = AnalogVar()
analogVarType.createVar(varName = varName, des = des, varType = varType, min = min, max = max, varModel = varModel) analogVarType.createVar(varName = varName, channelNumber = channelNumber, des = des, varType = varType, min = min, max = max, varModel = varModel)
@classmethod @classmethod
def getAllVar(self): def getAllVar(self):
@ -383,7 +386,7 @@ class AnalogManage(object):
return return
l = [] l = []
for var in vars: for var in vars:
l.append([var.id, var.varName, var.description, var.varType, var.min, var.max, var.varModel]) l.append([var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.varModel])
return l return l
@ -396,17 +399,17 @@ class AnalogManage(object):
@classmethod @classmethod
def editVar(self, name, Nname, des, varType, min, max, varModel): def editVar(self, name, Nname, channelNumber, des, varType, min, max):
# 修改变量信息 # 修改变量信息
name = str(name) name = str(name)
Nname = str(Nname) Nname = str(Nname)
channelNumber = str(channelNumber)
des = str(des) des = str(des)
varType = str(varType) varType = str(varType)
min = str(min) min = str(min)
max = str(max) max = str(max)
varModel = str(varModel)
if Nname == name: if Nname == name:
AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, varModel = varModel).where(AnalogVar.varName == name).execute() AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute()
elif AnalogVar.getByName(Nname): elif AnalogVar.getByName(Nname):
print('已有同名变量') print('已有同名变量')
return return
@ -414,7 +417,7 @@ class AnalogManage(object):
print('不存在的变量') print('不存在的变量')
return return
else: else:
AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, varModel = varModel).where(AnalogVar.varName == name).execute() AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute()
@classmethod @classmethod
def editVarModel(self, name, varModel): def editVarModel(self, name, varModel):
@ -426,33 +429,42 @@ class AnalogManage(object):
var = AnalogVar.getByName(name) var = AnalogVar.getByName(name)
if var: if var:
return [var.id, var.varName, var.description, var.varType, var.min, var.max, var.varModel] return [var.id, var.varName, var. channelNumber, var.description, var.varType, var.min, var.max, var.varModel]
else: else:
return False return False
def initVar(self): def initVar(self):
for i in range(1, 13):
name = '无源4-20mA输出通道' + str(i)
des = '无源4-20mA输出' + str(i)
self.createVar(varName=name, channelNumber= str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值')
for i in range(13, 17):
name = '有源4-20mA输出通道' + str(i)
des = '有源4-20mA输出' + str(i)
self.createVar(varName=name, channelNumber=str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值')
for i in range(1, 17):
name = '有源24V数字输出通道' + str(i)
des = '有源24V数字输出' + str(i)
self.createVar(varName=name, channelNumber=str(i), varType='DO', des=des, min='100', max='200', varModel = '本地值')
for i in range(1, 9): for i in range(1, 9):
name = 'Value' + str(i) name = '无源24V数字输入通道' + str(i)
if i < 5: des = '无源24V数字输入' + str(i)
des = '有源4-20mA输出' + str(i) self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='100', max='200', varModel = '本地值')
self.createVar(varName=name, varType='AO', des=des, min='100', max='200', varModel = '本地值')
else: for i in range(9, 17):
des = '无源4-20mA输出' + str(i) name = '有源48V数字输入通道' + str(i)
self.createVar(varName=name, varType='AO', des=des, min='100', max='200', varModel = '本地值') des = '有源48V数字输入' + str(i)
for i in range(1, 9): self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='100', max='200', varModel = '本地值')
name = 'Value' + str(i + 8)
if i < 5:
des = '有源频率输出' + str(i)
self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值')
elif i < 7:
des = '无源NPN频率输出' + str(i)
self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值')
else:
des = '无源PNP频率输出' + str(i)
self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值')
for i in range(1, 9): for i in range(1, 9):
name = 'Value' + str(i + 16) name = '有源/无源4-20mA输入通道' + str(i)
self.createVar(varName=name, varType='DO', des='DO', min='0', max='1', varModel = '本地值') des = '有源/无源4-20mA输入' + str(i)
self.createVar(varName=name, channelNumber=str(i), varType='AI', des=des, min='100', max='200', varModel = '本地值')
class HartSimulateVarManage(object): class HartSimulateVarManage(object):
@ -554,7 +566,6 @@ class GlobalVarManager(object):
def isVarNameExist(cls, varName): def isVarNameExist(cls, varName):
"""检查新变量名是否在任意协议模型中已存在""" """检查新变量名是否在任意协议模型中已存在"""
existingNames = cls.getAllVarNames() existingNames = cls.getAllVarNames()
print(varName,existingNames )
if str(varName) in existingNames: if str(varName) in existingNames:
return True return True
else: else:

@ -169,6 +169,7 @@ class HartVar(BaseModel):
class TcRtdVar(BaseModel): class TcRtdVar(BaseModel):
varName = CharField() varName = CharField()
channelNumber = CharField()
createTime = CharField() createTime = CharField()
description = CharField() description = CharField()
varType = IntegerField() varType = IntegerField()
@ -193,8 +194,9 @@ class TcRtdVar(BaseModel):
query.execute() query.execute()
# 创建变量 # 创建变量
def createVar(self, varName, des, varType, min, max, compensationVar, varModel): def createVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel):
self.varName = varName self.varName = varName
self.channelNumber = channelNumber
self.description = des self.description = des
self.varType = varType self.varType = varType
self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
@ -205,8 +207,9 @@ class TcRtdVar(BaseModel):
# print(self.createTime) # print(self.createTime)
self.save() self.save()
def initVar(self, varName, des, varType, min, max, compensationVar, varModel): def initVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel):
self.varName = varName self.varName = varName
self.channelNumber = channelNumber
self.description = des self.description = des
self.varType = varType self.varType = varType
self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
@ -218,6 +221,7 @@ class TcRtdVar(BaseModel):
class AnalogVar(BaseModel): class AnalogVar(BaseModel):
varName = CharField() varName = CharField()
channelNumber = CharField()
createTime = CharField() createTime = CharField()
description = CharField() description = CharField()
varType = IntegerField() varType = IntegerField()
@ -240,8 +244,9 @@ class AnalogVar(BaseModel):
query.execute() query.execute()
# 创建变量 # 创建变量
def createVar(self, varName, des, varType, min, max, varModel): def createVar(self, varName, channelNumber, des, varType, min, max, varModel):
self.varName = varName self.varName = varName
self.channelNumber = channelNumber
self.description = des self.description = des
self.varType = varType self.varType = varType
self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
@ -251,8 +256,9 @@ class AnalogVar(BaseModel):
# print(self.createTime) # print(self.createTime)
self.save() self.save()
def initVar(self, varName, des, varType, min, max, varModel): def initVar(self, varName, channelNumber, des, varType, min, max, varModel):
self.varName = varName self.varName = varName
self.channelNumber = channelNumber
self.description = des self.description = des
self.varType = varType self.varType = varType
self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')

Loading…
Cancel
Save