DanBuss DNIP
DanBuss DNIP
Contents
4
4 4 4 4 4
5 5 5
2. PROTOCOL REQUIREMENTS
2.1 Introduction 2.2 Initialising the Port 2.3 IO Device Online Test 2.4 State Flow Description 2.5 Message Structure 2.6 Data Format 2.7 Checksum 2.8 Extended Protocol Description 2.9 Error Handling
6
6 6 6 6 6 7 7 7 7
8
8 8 8 8 9 9 9 9 9
4. USER INTERFACE
4.1 Introduction
11
11
DanBuss DNIP.doc
11 11
11 11 11 11 11
11
11 11
4.5 Pulldown lists Help 4.6 IO Device Data Types and Formats 4.7 IO Device Function Blocks and their Parameters (DANBUSS.DBF) 4.8 Protdir.dbf 4.9 Parameters and INI options
4.9.1 4.9.2 Standard Parameters Driver Specific Parameters
12 12 12 22 22
22 22
Driver Specific Errors Driver Error Help Debug Messages Stats Special Counters Hints and Tips
23 24 24 24 25
26
26 26
26 26 26 26
DanBuss DNIP.doc
1.1 Introduction
This section defines the types of I/O Devices that are targeted by this driver.
DanBuss DNIP.doc
COMX
RS-232
GW-PC
RS-485
DanDuc / MPV
1.5.1 PC-GW PC Cable Use cable Danfoss part #191F4403. The specification is as follows:
GW-PC
PG RX TX DTR SG CTS
1 2 3 4 5 8
1 2 3 5 7 20
PG TX RX CTS SG DTR
The DanBuss (RS-485) should be terminated, using the internal terminations, at each end according to the installation instructions for DanBuss. 1.5.3 Software Setup The GW-PC router lines should be set up as for a typical direct connected Danfoss Master 2000 system (standard configuration). The DHC address used (typical 0:10) must be set up in CITECT.INI.
DanBuss DNIP.doc
2. Protocol Requirements
2.1 Introduction
This section documents all the requirements of the protocol itself.
The frame may be up to 128 bytes wide. DLE SOF ACK (control option) SAD (control option) Packet number Data CRC DLE EOF 0x10 0x1F 0x06 0x02 0x11-0xFF See description below See description below 0x10 0x17
Every DNIP frame (SAD type) that is sent has to be acknowledged. The acknowledge DNIP frame has no data part and has to have the same packet number as the frame it is to acknowledge. The data part looks like: Datalen Function code Receiver address Low Receiver address High Sender address Low The total length of the data part (excluding this byte) Always 0x41 (MPV/DanDuc message) The lower part (0-127) and the upper parts LSb. The upper part (0-127) right shifted one bit. The MSbs is used to determine message priority. The lower part (0-127) and the upper parts LSb.
DanBuss DNIP.doc
The upper part (0-127) right shifted one bit. The MSbs is used to determine message priority. Always zero Control/Sense/Event/Answer See extended description (could be FUNCTION_BLOCK, CLOCK, SYSTEM etc) The count of DNIP frames. If the following part isnt enough to transport all data, then it is cut into two or more frames. This byte indicates which frame it is. If it has the MSb set, then it is the first frame. The other 7 bits indicate how many frames it is left. I.e. 0x80 indicates that this is the first frame, and it is zero frames left. 0x82 indicates that it is the first frame, and there is 2 frames left. 0x01 indicates that it is one frame left, and this frame is not the first one.
The following part is optional and depends of the command. The way it looks like when it returns depends of the command. Type Block Parameter Function block type, ex 0x02 is AI, 0x03 is AIB etc The block number, 0x00-0x1F, or 0xFF which means all function blocks The parameter, 0x00-0xFD, or 0xFF which means all parameters
2.7 Checksum
The CRC (which not really are a Cyclic Redundancy Check) is calculated from the control character and to the last byte of the data part. For an acknowledge this means that the CRC is calculated from the control character and the packet number. The CRC is calculated before any DLE expanding is made. Even the CRC is DLE expanded if the CRC happens to be a DLE. The actual calculation is made by XORing the CRC with all bytes inside the frame, including control character and packet number. The CRC starts with zero.
DanBuss DNIP.doc
3.1 Cache
This driver is of the Front-End-Back-End type, and therefore has a cache list of variables that has been read by Citect. The driver automatically updates the variables in the cache list with the highest possible speed. If Citect has not re-read the value within 30 seconds (adjustable, default) then the cache element will be erased (another page is selected etc). The size of a cache element is minimum 29 bytes, and maximum 243 bytes. This is allocated from the linear 32-bit memory space. The cache list limit depends on the system.
DanBuss DNIP.doc
3.5 Writes
Write requests can never be blocked. However, Citect may push a lot of write DCBs at the same address if the user use a Slider etc to set the value, and let it use Continous update of tag. The driver will create a write cache element for each of the write DCBs and connect it to the variable DCB. The driver will always use the last allocated write cache element (for this variable) to perform the write, and then delete all write cache elements belonging to that variable, returning no error to the other DCBs. If the variable that is to be written do not exist in the cache list, it will be added, a new cache element will be allocated, and a write cache element will be connected to it. The driver will first actually read the variable to fill in the function block structure of DANBUSS, then the write will be performed and the write DCB is returned. At this point the cache element gets the highest priority, which means that it will be re-read immediately.
3.9 Danbuss.dbf
The DANBUSS specification for a DanDuc contains 474 different variables. To understand the addressing mode of the tags used a record from DANBUSS.DBF is explained:
TEMPLATE TIMCON%U%*256.33 UNIT_TYPE 0x05082154 RAW_TYPE 7 BIT WIDTH 64 LOW 1 HIGH 32 COMMENT sOverrideOffStop
This row describes the TIMCON function block variable sOverrideOffStop, which is the variable that sets the end time for the ovveride time function for turning an output off. The variable is of a string type, 8 characters. There may only be up to 32 function blocks of a type in a DANBUSS device. However, the new devices contains more function blocks of the same type, and therefore new function block types are invented, such as AI and AIB, which means that AI1-32 is for analog input 1-32 and AIB1-32 is for analog input 33-64. The UNIT_TYPE is used to specify the behaviour of the variable: 05 If bit 0 is set, it indicates that this varible should be read in a function block blocked mode. It means that this variable will cause the driver to read the whole function block. If bit 1 is set, then this variable should be a Scan List member (read together with other
DanBuss DNIP.doc
variables from other function blocks). If bit 2 is set, then this variable will be of a One Shot type. It will be read once (with same priority as all other new variables) and then it will be updated very slowly (once per hour is default, may be set in CITECT.INI) 08 21 The function block type that this variable belongs to. The variables order in this function block (hex, it is equal to the last number in the template) The DANBUSS variable type, used internally for conversion.
typedef enum MPTypes { MP_MPBLOCKNAME, /* = 18 byte */ MP_AIPARAMETER, /* = 8 byte */ MP_DIPARAMETER, /* = 6 byte */ MP_AOPARAMETER, /* = 5 byte */ MP_DOPARAMETER, /* = 3 byte */ MP_ASPARAMETER, /* = 3 byte */ MP_DSPARAMETER, /* = 2 byte */ MP_PTRPARAMETER, /* = 4 byte */ MP_DATPARAMETER, /* = 2 byte */ MP_UTCPARAMETER /* = 4 byte */ } MPTypes;
Citects type, is used to indicate any special format for time presentation etc.
typedef enum CITypes { CI_USERAW, // Results in the raw format, no conversion is made CI_UTCDATE, // Results in date string, format 1997-11-21 from UTC CI_UTCTIME, // Results in time string, format 21:15 from UTC CI_TIME // Results in time string, format 21:15 from int CI_STRWEEK // Results in time string, format 4 21:15 from int (4=weekday) } CITypes;
This results in that this variable will be read only once (with very slow update, defaulted to once per hour). The driver will read the complete function block into the cache elements data area. This means that if Citect asks for another variable within this function block at this device, it will read directly from the cache elements data area, and not from the device.This variable should not be a ScanList member (a ScanList is the DANBUSS function that reads up to 36 variables in one request). This variable can not be a ScanList member, though it causes the driver to read the entire function block. The variable belongs to the function block type TIMCON (time program). The variable is number 33 (0x21) in this function block, it is of the DANBUSS type Analog Output, and will be converted to the CI_STRWEEK type in string format when passed to and from Citect.
DanBuss DNIP.doc
10
4. User Interface
4.1 Introduction
This section defines how the user will see the driver. This relates directly to how the Citect forms need to be filled out and any special INI options. For the kernel, the debug trace messages and the Stats.Special counters are documented.
-ri
DanBuss DNIP.doc
11
TYPE PROTOCOL
DATA DANBUSS
FILTER
0x01 - 0xFF
Used for Function Block Names only (BLOCKNAME). Limited to 16 characters. If written, will only write to SRAM, EEPROM will not be updated (changes valid until next device boot). Used for Time Program (TIMCON Function Block). Presents the time in 24-hour clock format. Used for Time Program (TIMCON Function Block). Presents the time in 24-hour clock format, and the day as 1-7 (Monday-Sunday). Used for the device clock. Presents the time in 24-hour clock format. If the devices clock is written, it will be resynced by the GateWay within a minute. Used for the device clock. Presents the date in European (98.02.18) clock format. If the devices clock is written, it will be resynced by the GateWay within a minute.
Str24Hour
STRING
Str1WeekMinute
1 00:00 - 7 24:00
STRING
StrUTCTime
00:00 23:59
STRING
StrUTCDate
YY-MM-DD
STRING
DanBuss DNIP.doc
12
AGATEn.1 AGATEn.2 AGATEn.3 AGATEn.4 AGATEn.5 AGATEn.6 AGATEn.7 AGATEn.8 AGATEn.9 AGATEn.10 AGATEn.11 AGATEn.12 AIn.0 AIn.1 AIn.2 AIn.3 AIn.4 AIn.5 AIn.6 AIn.7 AIn.8 AIn.9 AIn.10 AIn.11 AIn.12 AIn.13 AIn.14 AIn.15 AIn.16 AIn.17 AIn.18 AIn.19 AIn.20 AIn.21 AIn.22 AIn.23 AIn.24 AIn.25 AIn.26 AIn.27 AIn.28 AIn.29 AIn.30 AIn.31 AIn.32 AIn.33 AIn.34 AIn.35 AIn.36 AIBn.0 AIBn.1 AIBn.2 AIBn.3
fInput1 fInput2 fInput3 fInput4 fAmplific1 fAmplific2 fAmplific3 fAmplific4 fActualValue iSelectCalcType bVisible bManuelMode sBlockName fMaxRange fMinRange fMaxLimit fMinLimit fAlarmOffset bAlarmSend iAlarmDelay fOffset fLockValue bLockInput bSensorAlarm bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm fActualValue X1 Y1 X2 Y2 X3 Y3 X4 Y4 iTarget iFilter bMaxRangeAlarmEnable bMinRangeAlarmEnable bMaxLimitAlarmEnable bMinLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName fMaxRange fMinRange fMaxLimit
Float Float Float Float Float Float Float Float Float Integer Boolean Boolean String16 Float Float Float Float Float Boolean Integer Float Float Boolean Boolean Boolean Boolean Boolean Boolean Boolean Float Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Boolean Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Float Float Float
REAL REAL REAL REAL REAL REAL REAL REAL REAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL REAL REAL DIGITAL INTEGER REAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL
DanBuss DNIP.doc
13
AIBn.4 AIBn.5 AIBn.6 AIBn.7 AIBn.8 AIBn.9 AIBn.10 AIBn.11 AIBn.12 AIBn.13 AIBn.14 AIBn.15 AIBn.16 AIBn.17 AIBn.18 AIBn.19 AIBn.20 AIBn.21 AIBn.22 AIBn.23 AIBn.24 AIBn.25 AIBn.26 AIBn.27 AIBn.28 AIBn.29 AIBn.30 AIBn.31 AIBn.32 AIBn.33 AIBn.34 AIBn.35 AIBn.36 AOn.0 AOn.1 AOn.2 AOn.3 AOn.4 AOn.5 AOn.6 AOn.7 AOn.8 AOn.9 AOn.10 AOn.11 AOn.12 AOn.13 AOn.14 AOn.15 AOn.16 AOn.17 AOn.18 AOn.19
fMinLimit fAlarmOffset bAlarmSend iAlarmDelay fOffset fLockValue bLockInput bSensorAlarm bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm fActualValue X1 X1 X2 X1 X3 X1 X4 X1 iTarget iFilter bMaxRangeAlarmEnable bMinRangeAlarmEnable bMaxLimitAlarmEnable bMinLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName fAnalogInput fMaxRange fMinRange fMaxLimit fMinLimit fAlarmOffset bAlarmSend iAlarmDelay fOffset fLockValue bLockInput fMaxOutValue fMinOutValue bOutputAlarm bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm
Float Float Boolean Integer Float Float Boolean Boolean Boolean Boolean Boolean Boolean Boolean Float Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Boolean Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Float Float Float Float Float Float Boolean Integer Float Float Boolean Float Float Boolean Boolean Boolean Boolean Boolean Boolean
REAL REAL DIGITAL INTEGER REAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL REAL REAL REAL DIGITAL INTEGER REAL REAL DIGITAL REAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL
DanBuss DNIP.doc
14
AOn.20 AOn.21 AOn.22 AOn.23 AOn.24 AOn.25 AOn.26 AOn.27 AOn.28 AOn.29 AOn.30 ASMLn.0 ASMLn.1 ASMLn.2 ASMLn.3 ASMLn.4 ASMLn.5 ASMLn.6 CTn.0 CTn.1 CTn.2 CTn.3 CTn.4 CTn.5 CTn.6 CTn.7 CTn.8 CTn.9 CTn.10 CTn.11 CTn.12 CTn.13 CTn.14 CTn.15 CTn.16 CTn.17 CTn.18 CTn.19 CTn.20 CTn.21 CTn.22 CTn.23 CTn.24 CTn.25 CTn.26 DIn.0 DIn.1 DIn.2 DIn.3 DIn.4 DIn.5 DIn.6 DIn.7
fActualValue iFilter bMaxRangeAlarmEnable bMinRangeAlarmEnable bMaxLimitAlarmEnable bMinLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName fInput1 fInput2 fHysteres bActualLevel bVisible bManuelMode sBlockName bCounterInput bStartStop iMeasureInterval iMultValue iDivideValue iPulseInterval bResetInput iMaxLimit bAlarmSend bPulseOutput bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm fContValue iAccumValue iTarget bTargetArea bMaxRangeAlarmEnable bMaxLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName bAlarmLevel iAlarmDelay bLockLevel bLockInput bAlarmSend bActualLevel bOutputAlarm
Float Integer Boolean Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Float Float Float Boolean Boolean Boolean String16 Boolean Boolean Integer Integer Integer Integer Boolean Integer Boolean Boolean Boolean Boolean Boolean Boolean Boolean Float Integer Integer Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Boolean Integer Boolean Boolean Boolean Boolean Boolean
REAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL DIGITAL DIGITAL DIGITAL STRING DIGITAL DIGITAL INTEGER INTEGER INTEGER INTEGER DIGITAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL INTEGER INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING DIGITAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL
DanBuss DNIP.doc
15
DIn.8 DIn.9 DIn.10 DIn.11 DIn.12 DIn.13 DIn.14 DIBn.0 DIBn.1 DIBn.2 DIBn.3 DIBn.4 DIBn.5 DIBn.6 DIBn.7 DIBn.8 DIBn.9 DIBn.10 DIBn.11 DIBn.12 DIBn.13 DIBn.14 DLOGIKn.0 DLOGIKn.1 DLOGIKn.2 DLOGIKn.3 DLOGIKn.4 DLOGIKn.5 DLOGIKn.6 DLOGIKn.7 DLOGIKn.8 DLOGIKBn.0 DLOGIKBn.1 DLOGIKBn.2 DLOGIKBn.3 DLOGIKBn.4 DLOGIKBn.5 DLOGIKBn.6 DLOGIKBn.7 DLOGIKBn.8 DOn.0 DOn.1 DOn.2 DOn.3 DOn.4 DOn.5 DOn.6 DOn.7 DOn.8 DOn.9 DOn.10 DOn.11 DOn.12
iTarget bSettingAlarmEnable bBusAlarmEnable bSwitchOutput iMPVAlarmGroup bVisible bManuelMode sBlockName bAlarmLevel iAlarmDelay bLockLevel bLockInput bAlarmSend bActualLevel bOutputAlarm iTarget bSettingAlarmEnable bBusAlarmEnable bSwitchOutput iMPVAlarmGroup bVisible bManuelMode sBlockName bInput1 bInput2 bInput3 bInput4 bActualLevel iSelectGateType bVisible bManuelMode sBlockName bInput1 bInput2 bInput3 bInput4 bActualLevel iSelectGateType bVisible bManuelMode sBlockName bDigitalInput bAlarmLevel iAlarmDelay bLockLevel bLockInput bAlarmSend bActualLevel bOutputAlarm bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible
Integer Boolean Boolean Boolean Integer Boolean Boolean String16 Boolean Integer Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean Boolean Integer Boolean Boolean String16 Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Boolean Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Boolean Boolean Integer Boolean Boolean Boolean Boolean Boolean Boolean Boolean Integer Boolean
INTEGER DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING DIGITAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING DIGITAL DIGITAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL
DanBuss DNIP.doc
16
DOn.13 FFn.0 FFn.1 FFn.2 FFn.3 FFn.4 FFn.5 FFn.6 FFn.7 FFn.8 FFn.9 FORSn.0 FORSn.1 FORSn.2 FORSn.3 FORSn.4 FORSn.5 FORSn.6 INTEGn.0 INTEGn.1 INTEGn.2 INTEGn.3 INTEGn.4 INTEGn.5 INTEGn.6 INTEGn.7 INTEGn.8 INTEGn.9 INTEGn.10 INTEGn.11 INTEGn.12 INTEGn.13 INTEGn.14 INTEGn.15 INTEGn.16 INTEGn.17 INTEGn.18 INTEGn.19 INTEGn.20 INTEGn.21 INTEGn.22 KOMPENn.0 KOMPENn.1 KOMPENn.2 KOMPENn.3 KOMPENn.4 KOMPENn.5 KOMPENn.6 KOMPENn.7 KOMPENn.8 KOMPENn.9 KOMPENn.10 KOMPENn.11
bManuelMode sBlockName bPresetInput bJInput bClockInput bKInput bResetInput bQOutput bQOutputInverted bVisible bManuelMode sBlockName bDigitalInput iDelayTOn iDelayTOff bActualLevel bVisible bManuelMode sBlockName fAnalogInput bStart bTurnInput fDivideValue iSampleTime bResetInput fMaxLimit bAlarmSend bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm fActualValue iSample bMaxRangeAlarmEnable bMaxLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName fOut1 fFlow1 fOut2 fFlow2 fOut3 fFlow3 fOutSensor fNightSetback bSetPointSwitch bMinMaxLimiter fLimiterAmplific
Boolean String16 Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String16 Boolean Integer Integer Boolean Boolean Boolean String16 Float Boolean Boolean Float Integer Boolean Float Boolean Boolean Boolean Boolean Boolean Boolean Float Integer Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Float Float Float Float Float Float Float Float Boolean Boolean Float
DIGITAL STRING DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL STRING DIGITAL INTEGER INTEGER DIGITAL DIGITAL DIGITAL STRING REAL DIGITAL DIGITAL REAL INTEGER DIGITAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL REAL REAL REAL REAL REAL DIGITAL DIGITAL REAL
DanBuss DNIP.doc
17
KOMPENn.12 KOMPENn.13 KOMPENn.14 KOMPENn.15 KOMPENn.16 KOMPENn.17 KOMPENn.18 KOMPENn.19 KOMPENn.20 KOMPENn.21 KOMPENn.22 KOMPENn.23 KOMPENn.24 KOMPENn.25 KOMPENn.26 KOMPENn.27 KOMPENn.28 KOMPENn.29 KOMPENn.30 MATn.0 MATn.1 MATn.2 MATn.3 MATn.4 MATn.5 MATn.6 MATn.7 MATn.8 MATn.9 MATn.10 MATn.11 MATn.12 MATn.13 MATn.14 MATn.15 MATn.16 MATn.17 OMRINDn.0 OMRINDn.1 OMRINDn.2 OMRINDn.3 OMRINDn.4 OMRINDn.5 OMRINDn.6 OMRINDn.7 OMRINDn.8 OMSKFTn.0 OMSKFTn.1 OMSKFTn.2 OMSKFTn.3 OMSKFTn.4 OMSKFTn.5 OMSKFTn.6
fReturnSetPoint fReturnSensor fCompen fMinLimiter fMaxLimiter fFlowSensor fDeadBand bStopITime fPBand iITime bOverride_100 bOverride_0 bOpenOutput bCloseOutput fActualValue fCalcSetPoint bSwitchOutput bVisible bManuelMode sBlockName fAnalogInput fOutputOffset fActualValue X1 Y1 X2 Y2 X3 Y3 X4 Y4 X5 Y5 X6 Y6 bVisible bManuelMode sBlockName fAnalogInput fMinLimit fMaxLimit bMinRange bLimitRange bMaxRange bVisible bManuelMode sBlockName fInput1 fInput2 bSwitchInput fActualValue bVisible bManuelMode
Float Float Float Float Float Float Float Boolean Float Integer Boolean Boolean Boolean Boolean Float Float Boolean Boolean Boolean String16 Float Float Float Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Boolean Boolean String16 Float Float Float Boolean Boolean Boolean Boolean Boolean String16 Float Float Boolean Float Boolean Boolean
REAL REAL REAL REAL REAL REAL REAL DIGITAL REAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL REAL REAL DIGITAL DIGITAL DIGITAL STRING REAL REAL REAL INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER DIGITAL DIGITAL STRING REAL REAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL STRING REAL REAL DIGITAL REAL DIGITAL DIGITAL
DanBuss DNIP.doc
18
OPTCONn.0 OPTCONn.1 OPTCONn.2 OPTCONn.3 OPTCONn.4 OPTCONn.5 OPTCONn.6 OPTCONn.7 OPTCONn.8 OPTCONn.9 OPTCONn.10 OPTCONn.11 OPTCONn.12 OPTCONn.13 OPTCONn.14 OPTCONn.15 OPTCONn.16 OPTCONn.17 OPTCONn.18 OPTCONn.19 OPTCONn.20 OPTCONn.21 OPTCONn.22 OPTCONn.23 OPTCONn.24 PIDREGn.0 PIDREGn.1 PIDREGn.2 PIDREGn.3 PIDREGn.4 PIDREGn.5 PIDREGn.6 PIDREGn.7 PIDREGn.8 PIDREGn.9 PIDREGn.10 PIDREGn.11 PIDREGn.12 PIDREGn.13 PIDREGn.14 PIDREGn.15 PIDREGn.16 PIDREGn.17 PIDREGn.18 PREGn.0 PREGn.1 PREGn.2 PREGn.3 PREGn.4 PREGn.5 PREGn.6 PREGn.7 PREGn.8
sBlockName bSwitchValue fOutSensor fRoomSensor bSensorActive fSetPoint fMaxSetPoint iTOn iTOff iMaxTOn iMaxTOff fSwitchTime bIDEActive fEDESetPoint bDayLevel bBoostLevel bEDELevel bIDELevel bAlarmStart bAlarmStop fAlarmValue iCalcTOn iCalcTOff bVisible bManuelMode sBlockName fSensorInput fCompen bSetPointSwitch fDaySetPoint fNightSetPoint fMinLimit fMaxLimit fPBand iITime iDTime bLockITime fOutputOffset fActualValue fCalcSetPoint fPIOutput bSwitchOutput bVisible bManuelMode sBlockName fSensorInput fCompen1 fCompen2 bSetPointSwitch fAmplific1 fAmplific2 fSetPoint1 fSetPoint2
String16 Boolean Float Float Boolean Float Float Integer Integer Integer Integer Float Boolean Float Boolean Boolean Boolean Boolean Boolean Boolean Float Integer Integer Boolean Boolean String16 Float Float Boolean Float Float Float Float Float Integer Integer Boolean Float Float Float Float Boolean Boolean Boolean String16 Float Float Float Boolean Float Float Float Float
STRING DIGITAL REAL REAL DIGITAL REAL REAL INTEGER INTEGER INTEGER INTEGER REAL DIGITAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL INTEGER INTEGER DIGITAL DIGITAL STRING REAL REAL DIGITAL REAL REAL REAL REAL REAL INTEGER INTEGER DIGITAL REAL REAL REAL REAL DIGITAL DIGITAL DIGITAL STRING REAL REAL REAL DIGITAL REAL REAL REAL REAL
DanBuss DNIP.doc
19
PREGn.9 PREGn.10 PREGn.11 PREGn.12 PREGn.13 PREGn.14 PREGn.15 PREGn.16 PREGn.17 PREGn.18 PREGn.19 PROPBn.0 PROPBn.1 PROPBn.2 PROPBn.3 PROPBn.4 PROPBn.5 PROPBn.6 PROPBn.7 PROPBn.8 PROPBn.9 PROPBn.10 PROPBn.11 TIMCONn.0 TIMCONn.1 TIMCONn.2 TIMCONn.3 TIMCONn.4 TIMCONn.5 TIMCONn.6 TIMCONn.7 TIMCONn.8 TIMCONn.9 TIMCONn.10 TIMCONn.11 TIMCONn.12 TIMCONn.13 TIMCONn.14 TIMCONn.15 TIMCONn.16 TIMCONn.17 TIMCONn.18 TIMCONn.19 TIMCONn.20 TIMCONn.21 TIMCONn.22 TIMCONn.23 TIMCONn.24 TIMCONn.25 TIMCONn.26 TIMCONn.27 TIMCONn.28 TIMCONn.29
fMinLimit fMaxLimit fPFactor fDaySetPoint fNightSetPoint fOutputOffset fActualValue fCalcSetPoint fFilter bVisible bManuelMode sBlockName fAnalogInput fLowerSetPoint fUpperSetPoint fLowerAmplific fUpperAmplific fLowerLimit fUpperLimit fOutputOffset fActualValue bVisible bManuelMode sBlockName bOverrideDay bOverrideNight bActualLevel fSwitchTime fActualTime sProg1Per1Start sProg1Per1Stop sProg1Per2Start sProg1Per2Stop sProg1Per3Start sProg1Per3Stop sProg2Per1Start sProg2Per1Stop sProg2Per2Start sProg2Per2Stop sProg2Per3Start sProg2Per3Stop sProg3Per1Start sProg3Per1Stop sProg3Per2Start sProg3Per2Stop sProg3Per3Start sProg3Per3Stop sProg4Per1Start sProg4Per1Stop sProg4Per2Start sProg4Per2Stop sProg4Per3Start sProg4Per3Stop
Float Float Float Float Float Float Float Float Float Boolean Boolean String16 Float Float Float Float Float Float Float Float Float Boolean Boolean String16 Boolean Boolean Boolean Float Float Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour Str24Hour
REAL REAL REAL REAL REAL REAL REAL REAL REAL DIGITAL DIGITAL STRING REAL REAL REAL REAL REAL REAL REAL REAL REAL DIGITAL DIGITAL STRING DIGITAL DIGITAL DIGITAL REAL REAL STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING STRING
DanBuss DNIP.doc
20
TIMCONn.30 TIMCONn.31 TIMCONn.32 TIMCONn.33 TIMCONn.34 TIMCONn.35 TIMCONn.36 TIMCONn.37 TIMCONn.38 TIMCONn.39 TIMCONn.40 TIMCONn.41 TIMCONn.42 TIMERn.0 TIMERn.1 TIMERn.2 TIMERn.3 TIMERn.4 TIMERn.5 TIMERn.6 TIMERn.7 TIMERn.8 TIMERn.9 TIMERn.10 TIMERn.11 TIMERn.12 TIMERn.13 TIMERn.14 TIMERn.15 TIMERn.16 TIMERn.17 TIMERn.18 TIMERn.19 TRINDn.0 TRINDn.1 TRINDn.2 TRINDn.3 TRINDn.4 TRINDn.5 TRINDn.6 TRINDn.7 TRINDn.8 TRINDn.9 TRINDn.10 TRINDn.11 TRINDn.12 TRINDn.13 DATE TIME
sOverrideOnStart sOverrideOnStop sOverrideOffStart sOverrideOffStop iProgSelMonday iProgSelTuesday iProgSelWednesday iProgSelThusday iProgSelFriday iProgSelSaturday iProgSelSunday bVisible bManuelMode sBlockName bStartInput bStopInput bResetInput iMaxLimit bAlarmSend bAlarmMaxRange bAlarmMinRange bAlarmMaxLimit bAlarmMinLimit bCommonAlarm iActualValue iSelectTimerUnit bMaxRangeAlarmEnable bMaxLimitAlarmEnable bSettingAlarmEnable bBusAlarmEnable iMPVAlarmGroup bVisible bManuelMode sBlockName fAnalogInput fMaxInValue fMinInValue fMaxOutValue fMinOutValue bMinOverride bMaxOverride bOverride_0 bOverride_100 bTurnOutput fActualValue bVisible bManuelMode sDate sTime
Str1WeekMinute Str1WeekMinute Str1WeekMinute Str1WeekMinute Integer Integer Integer Integer Integer Integer Integer Boolean Boolean String16 Boolean Boolean Boolean Integer Boolean Boolean Boolean Boolean Boolean Boolean Integer Integer Boolean Boolean Boolean Boolean Integer Boolean Boolean String16 Float Float Float Float Float Boolean Boolean Boolean Boolean Boolean Float Boolean Boolean StrUTCDate StrUTCTime
STRING STRING STRING STRING INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER DIGITAL DIGITAL STRING DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL INTEGER INTEGER DIGITAL DIGITAL DIGITAL DIGITAL INTEGER DIGITAL DIGITAL STRING REAL REAL REAL REAL REAL DIGITAL DIGITAL DIGITAL DIGITAL DIGITAL REAL DIGITAL DIGITAL STRING STRING
Where:
DanBuss DNIP.doc
21
The Function Block number. This can span from 1 to 32 for all types of function blocks.
4.8 Protdir.dbf
TAG DANBUSS FILE DANBUSS BIT_BLOCK 16 MAX_LENGTH 256 OPTIONS 0x0B47
4.9.2 Driver Specific Parameters All DANBUSS specific parameters are located in the section DanBuss PARAMETER CacheLiveTime DEFAULT 30000 (ms) DESCRIPTION The time a Cache Element should stay allocated from that a DCB has made access to it. When a Cache Element is allocated, it will always be updated with values from the device. The interval that is used to update One Shot variables. Function Block TIMCON is an example of a set of variables that will be updated with this interval. The factor the Delay is multiplied with when there are no high priority requests in the cache list. If all variables has been updated once, the time between DANBUSS request will increase to 6 x 250 ms = 1,5 seconds (defaults), if nothing causes any cache element to get high priority. The address of the Citect I/O-server. If set to a faulty value, it could cause the GateWay not to know where to send packets returning from the devices. The default address is the Danfoss standard DHC address.
RefreshInterval
3600 (s)
IdleSlowDown
DHCAddress
0:10
DanBuss DNIP.doc
22
MaxScanListElements
36
The number of variables (DCBs asked for, that are in the CacheList) that may be asked for in one single poll to the unit that is to be serviced. The maximum number of variables is 36. Enables the Tag Debug Mode. It will set the MaxScanListElements parameter to 1 and make a single poll for every variable that is requested. This will return #COM for every variable until it has been polled (Generic error 0x19, GENERIC_INVALID_DATA). If there is any invalid variable (invalid Function Block address) it will remain in the #COM state, but return DRIVER_ADDRESS_RANGE_ERROR when it has been polled. The nature of DANBUSS is that if any of the requested variables (may be up to 36) has an bad address, all will return #COM (Generic Error 1 - DRIVER_ADDRESS_RANGE_ERROR).This debug mode is very slow, but is the only way to find out which variable causes the error.
TagDebugMode
ShowAlarmEvents
Causes the driver to show any incoming alarm events in the Kernel window. This is only done if any of the Debug modes are set (!= OFF), i.e. DEBUG p2 ERROR etc. If an alarm event of a parameter is received, and this parameter is set to 1 it will cause the driver to treat all parameters that belong to the same function block as the alarm event parameter to be reread (like a first poll). If set to 1, it will force the driver to respond with cahce allocs and replies when any debug mode is entered in the Kernel Enter any devices (or range of devices) that should be forcefully turned off. This will cause the devices to not be initially read by the driver. The format is 10: 0-10:127,12:0-12:127,13:2,13,3 etc.
ReReadAllEventBlockParameters
DebugNewCaches ForceOffLine
ScanListDeleteAtShutDown SleepAtShutDown
If set to 1, it will force the driver to send a ScanList delete command to the devices when the driver is shut down. This is not being used by this driver. The time the driver should wait from that it has sent a ScanList delete command to the device at shut down, until it processes the next device on-line. This is used in conjunction with ScanListDeleteAtShutDown.
1500 (ms)
DanBuss DNIP.doc
23
4.11
PROTOCOL DANBUSS
MASK
ERROR 101
REFERENCE
ACTION
COMMENT
11 12 13
14
ScanList reads
DanBuss DNIP.doc
24
DanBuss DNIP.doc
25
5.1 References
These references are attached/delivered as Word 6.0 Documentation files. MKS001 MKS002 MKS003 CI_VAR2 Meddelelse Krav Specifikation Danfoss DANBUSS Meddelelse Krav Specifikation DANDUC Meddelelse Krav Specifikation Danfoss MPV Variable types supported by the driver.
5.2 Contacts
5.2.1 Driver Development TroSoft, Tomas Rook +46 8 532 57262
5.2.2 DanBuss specialist Danfoss System Control, Rune Klitgaard +45 42 841622
5.2.3 Project Management Autic System, Gran Mnsson +46 155 214990
5.2.4 Delivery and support Autic System AB Box 81 SE-261 22 Landskrona Sweden Phone Telefax [email protected] [email protected] www.autic.se +46(0)418-471160 +46(0)418-471161
DanBuss DNIP.doc
26