| |
- adaCanMux(id, card, chan, typ='hex')
- Calculate Can can parameters from Node-Id, Card and Channel for ADA analog input
channels.
Return (OUT_CAN,IN_CAN,MUX)
- createAdaCanLink(port, id, card, chan, dataType='s')
- Setup a complete CAN link from adaCanMux data:
Return "@f 'dataType' 5 PORT OUTCAN INCAN MUX 10 1F4 0" % (int(port),outCan,inCan,mux)
- createAlarmLimits(rangeAlhVal, rangeAlhSevr)
- Create alarm limits and severities if rangeAlhVal rangeAlhSevr are defined .
Col.rangeAlhVal has to be in order with rangeAlhSevr to define alarm ranges
and severities or raise ValueError
LOLO,LOW,HIGH,HIHI,LLSV,LSV,HSV,HHSV
- createAnalogRecord(devName, fields, devObj, warnings, inFileName, lines)
- Setup display and alarm limits and create an analog type record/template.
INP/OUT link has to be set before so this function is usable for all records,
templates that make use of the typical analog fields as HOPR,LOPR,EGU,PREC
and LOLO,LOW,HIGH,HIHI + according severities.
- createBiBoRecord(devName, fields, devObj, warnings, inFileName, lines)
- Setup fields for bi/bo type records/templates and create instance
- Setup fields for state names and severities from the columns H,I,K
- Don't setup SHFT here!
- Create warnings for to long strings
- createMbbIoRecord(devName, fields, devObj, warnings, inFileName, lines)
- Setup fields for mbbi/mbbo type records/templates and create instance
- Setup fields for state names, severities and values from the columns H,I,K
- Don't setup SHFT,NOBT here!
- Support for mbbi record and long strings: create stringout records for
each string
- Create warnings for to long strings
- createSlopeConversion(rangeEng, rangeRaw)
- Create SLOPE conversion parameters for analog type records if 'rangeRaw' is defined.
Raise ValueError for illegal data
LINR,ESLO,EOFF,PREC,
- getBinaryAttributes(rangeEng, rangeRaw, rangeAlhSevr, inFileName, lines, warnings)
- Process columns that define values, strings and severities for binary records
from definitions in Col H,I,K
Return the checked data as python lists or raise ValueError
- getCANLink(rtyp, port, canId, cardNr, chan, name, iocTag, devObj)
- Create an CAN Link for an ADA-16 or DIGIO16 Card
* CardNr (Col E): The base of the multiplexer value = CardNr * 12
* Chan (Col.G): The multiplexer for this card.
Channel |
--------+--------
0..3(8) | Analog-In 0..4 (8)
10 | Analog-Out
0..8,16,32 | Bit Number for ADA-16, DIGIO-16, DIGIN32
* Binary records 'bi','mbbi','bo','mbbo': For CAN links and binary records
there is support to create mbbiDirect records to read the data and distribute
it to the binary records.
* ADA Cards and analog out 'ao', 'longout': The requested data type is drawn
from the Raw Value range:
Raw Value | Data Type | Card Type
---------------+-----------+---------------
0 - 65535 | S | 16 bit unipolar, 0 - 10V
0 - 131071 | S | 16 bit unipolar, 0 - 5V
-32256 - 32255 | s | 16 bit bipolar, -10 - 10V
- getDisplayLimits(rangeEng, egu)
- Return a dict with the the display parameters: LOPR, HOPR, EGU or raise ValueError
- getEcName(port, canId, cardNr, namesEnd)
- Embedded controller device, to hold the mbbi/oDirect. Derives its name from
the IOC name to get a unique name for each embedded controller. Remove the
characters IO from the IOC name to get this e.g. IOC1S15GP -> C1S15GP
EC<port>-<id><card><IOC derived part>
e.g. Port 1 Id5 card 3 on IOC1S15GP -> EC1-53C1S15GP
- getInfo(devObj)
- Return Info field dictionary from devObj.reqFlag or None
- getOpcLink(devObj, devName, opc_name, PLCLink)
- Create an OPC Link for option '-c opc', CAN or VME links are not supported in
this mode!
* Handle OPC-links (col. D) of type
- Just a String: Used as opc link
- (Legacy) Siemens notation of Servername,Datablock and byte address (
e.g. 'S7:[S7-Verbindung_1]DB2,X2.6')
* Set the fields DTYP, SCAN, INP/OUT according to the record type
* For binary records there are mbbi/oDirect records to read/write the data and
distribute it to/from the binary records. Set the fields NOBT, SHFT.
- getOpcuaLink(devObj, devName)
- getShiftParam(bits)
- For mbbi/oRecords: Calculate paramteres NOBT, SHFT from bitrange 'n - m'
For bi/oRecords: get bit number 'n' to be used in link to mbbi/oDirectRecord
that gets the data.
bits = 'n' or bits = 'n - m' , SHIFT = n, NOBT = nr of elements.
Return tupel: (NOBT,SHFT), NOBT=1 for bits = 'n'
E.G getShiftParam('5 - 7') = (3,5), getShiftParam('7') = (1,7)
- getVmeLink(rtyp, canId, cardNr, chan)
- getWagoLink(devObj)
- WAGO-I/O-SYSTEM by Modbus process data architecture:
Bit read/write by modbus function FC2/5 - read/write single coil. Specify
the bit count starting with 0
Analog values read/write by modbus function FC3/16 read/write multiple
registers. Specify the channel by the word count.
Linear conversion from real raw values 16bit hex to EGUL,EGUF defined in Column H.(Raw value range).
Col. G (Bits) is 16 for unipolar Conversion range and -16 for bipolar conversion.
Col. I (data range) defines HOPR/LOPR.
Special conversion for temperature modules with wago Tag in Col.E = 'wagoTemp'
Col.I (data range) defines HOPR/LOPR
- procInOut(rtyp)
- Is it a in or out record type? Return 'INP'|'OUT' for records or
templates that begin with a known record name from the list:
'longin,longout,ai,ao,bi,bo,mbbi,mbbo,mbbiDirect,mbboDirect,int64in,int64out'
Other records or templates return 'None'
- procRecord(devName, devObj, canOption, opc_name, iocTag, warnings, lines, inFileName)
- Is an EPICS record in:
['ai','ao','longin','longout','bi','bo','mbbi','mbbo','calc','calcout','int64in','int64out']
Setup EPICS record and return other data:
(alhSignals,arcSignals,panelDict,panelNameDict,panelWidgetName)
- pt100temp(devName, devObj, canOption, opc_name, iocTag, warnings, lines, inFileName)
- pt100tempGetFunc()
- setEpicsAlh(devName, alhSignals, devObj, warnings, lines, inFileName, cmLog)
- Setup all data to write an alarm handler file.
- Each object holds the data to describe one alarmhandler item (see epicsAlh docu)
The Collumns for Alarm definition:
- BESSY ALH Group (col. Q): The Path to the alarm group the first element is
the name of the alh file!
- BESSY ALH Flags(col. R): Optional. First the alarm Flags (CDT..) Than a
list of additional Items for
a CHANNEL definition in this format: ITEM<SPACE>value e.g.
"ALIAS=show this|MASK=T|ACKPV=ackPVName ackValue"
or legacy mask definition as first Element:
"T|ALIAS=show this|ACKPV=ackPVName ackValue"
Not allowed are the Items: 'CHANNEL','INCLUDE','GROUP','END'
Defaults:
Flags: ---T-
ALIAS: name signal
COMMAND: None or edm epicsPanel if defined in 'EPICS Panel Name' (col. U)
- ALH Sort (col. S): An optional sort number to define the order within a group
- setupPlugins(searchPathList)
- setupRecordLink(devName, devObj, canOption, opc_name, iocTag)
- Process link definition variables to get the hardware link of one of the supported types.
- All entrys but 'don't care' are mandatory.
- The option -c is legacy for the CAN-port number or '-c opc' for old opc devices.
Column | Variable name
-------+------------
Col. D | devObj.port
Col. E | devObj.canId
Col. F | devObj.cardNr
Col. G | devObj.chan
Device type | option -c | Col. D | Col. E | Col. F | Col. G | processed in
-----------------+---------------+----------+--------------+-----------+-----------+-------------
Bessy CAN Device | empty/CAN-Port| CAN-Port | CAN-Id | Card Nr. | Chan. Nr | getCANLink()
VME-Device | don't care | VME | DTYP | Card Nr. | Chan. Nr | getVmeLink()
OPC Device | opc | OPC-Link | don't care | don't care| don't care| getOpcLink()
OPC Device | don't care | opc | don't care | OPC-Link | don't care| getOpcLink()
OPCUA Device | don't care | opcua | SUBSCRIPTION | OPCUA-Link| see /1/ | getOpcuaLink()
Wago Device | don't care |MODBUS-Port| wago[Type] | Offset | Bits | getWagoLink()
Soft-/Other record| don't care |empty | [DTYPE] | [Link] | don't care| setupRecordLink()
- /1/ For bi/o or mbbi/o and defined bits will cause mbbiDirect records to be crated as in- output-records
to get the whole data word
- watchdog(devName, devObj, canOption, opc_name, iocTag, warnings, lines, inFileName)
- watchdogGetFunc()
|