Difference between revisions of "InimPrevidia"
(66 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione | + | INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione" |
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels. | This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels. | ||
Line 64: | Line 64: | ||
|loopsnumber | |loopsnumber | ||
|16 | |16 | ||
− | |style="white-space:nowrap"|n | + | |style="white-space:nowrap"|n = 1..16 |
|the number of configured loops | |the number of configured loops | ||
|- | |- | ||
+ | |groupsnumber | ||
+ | |240 | ||
+ | |style="white-space:nowrap"|n = 1..240 | ||
+ | |the number of configured groups | ||
+ | |- | ||
+ | |||
+ | |zonesnumber | ||
+ | |1000 | ||
+ | |style="white-space:nowrap"|n = 1..1000 | ||
+ | |the number of configured zones | ||
+ | |- | ||
+ | |||
+ | |rowspan="3"|model | ||
+ | |rowspan="3"|ultra | ||
+ | |ultra | ||
+ | |Inim Previdia Ultra panel | ||
+ | |- | ||
+ | |max | ||
+ | |Inim Previdia Max panel | ||
+ | |- | ||
+ | |compact | ||
+ | |Inim Previdia Compact panel | ||
+ | |- | ||
|} | |} | ||
+ | |||
+ | {{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}} | ||
+ | |||
+ | === inimprevidia.ini === | ||
+ | |||
+ | The inimprevidia.ini file is a specific configuration file located in the root directory. | ||
+ | |||
+ | This file is required to provide the I/O Server the name assignment of zones and devices. | ||
+ | |||
+ | This is an example of the file content: | ||
+ | |||
+ | <pre> | ||
+ | previdia.z1 = Zone 1 | ||
+ | previdia.g2 = Group 2 | ||
+ | previdia.l1.d1 = Device 1 Loop 1 | ||
+ | previdia.l8.d4 = Device 8 Loop 4 | ||
+ | </pre> | ||
+ | |||
+ | Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server | ||
+ | |||
+ | If you have multiples INIM PREVIDIA I/O Servers: | ||
+ | |||
+ | <pre> | ||
+ | previdia1.z1 = Zone 1 Previdia 1 | ||
+ | previdia2.z1 = Zone 2 Previdia 2 | ||
+ | previdia1.l1.d1 = Device 1 Loop 1 Previdia 1 | ||
+ | previdia2.l2.d1 = Device 1 Loop 1 Previdia 2 | ||
+ | </pre> | ||
+ | |||
+ | == Datapoints == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !ID | ||
+ | !Value | ||
+ | !R/W | ||
+ | !Description | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |connection | ||
+ | |online | ||
+ | |R | ||
+ | |connection established | ||
+ | |- | ||
+ | |offline | ||
+ | |R | ||
+ | |HSYCO can't connect to the panel | ||
+ | |- | ||
+ | |||
+ | |reset | ||
+ | |1 | ||
+ | |W | ||
+ | |force panel reset | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |buzzeroff | ||
+ | |1 | ||
+ | |W | ||
+ | |force buzzer off | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |prealarmoff | ||
+ | |1 | ||
+ | |W | ||
+ | |force pre alarm off | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |patrol | ||
+ | |1 | ||
+ | |W | ||
+ | |start patrol mode | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |mute | ||
+ | |0 | ||
+ | |W | ||
+ | |disable panel mute | ||
+ | |- | ||
+ | |1 | ||
+ | |W | ||
+ | |enable panel mute | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n> | ||
+ | |enable | ||
+ | |W | ||
+ | |device <n> of loop <k> is enabled | ||
+ | |- | ||
+ | |disable | ||
+ | |W | ||
+ | |device <n> of loop <k> is disabled | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n> | ||
+ | |enable | ||
+ | |W | ||
+ | |zone <n> is enabled | ||
+ | |- | ||
+ | |disable | ||
+ | |W | ||
+ | |zone <n> is disabled | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.night.mode | ||
+ | |0 | ||
+ | |R | ||
+ | |night mode is not active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |night mode is active | ||
+ | |- | ||
+ | |||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.silence | ||
+ | |0 | ||
+ | |R | ||
+ | |panel is not muted | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |panel is muted | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.patrol | ||
+ | |0 | ||
+ | |R | ||
+ | |patrol mode is not active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |patrol mode is active | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.buzzer.silence | ||
+ | |0 | ||
+ | |R | ||
+ | |buzzer is active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |buzzer is not active | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |global.access.level | ||
+ | |<n> | ||
+ | |R | ||
+ | |panel access level 1..4 | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.alarm | ||
+ | |0 | ||
+ | |R | ||
+ | |no active alarms | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |at least one active alarm | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.prealarm | ||
+ | |0 | ||
+ | |R | ||
+ | |no active pre alarms | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | ||at least one active pre alarm | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.notice | ||
+ | |0 | ||
+ | |R | ||
+ | |no active notice | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | ||at least one active notice | ||
+ | |- | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |no faults | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |at least one fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.disabled | ||
+ | |0 | ||
+ | |R | ||
+ | |panel is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |panel is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.rs485.1 | ||
+ | |0 | ||
+ | |R | ||
+ | |no rs485 1 power supply fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |rs485 1 power supply fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.rs485.1 | ||
+ | |0 | ||
+ | |R | ||
+ | |no rs485 2 power supply fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | ||rs485 2 power supply fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.battery | ||
+ | |0 | ||
+ | |R | ||
+ | |battery is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |battery fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.low.battery | ||
+ | |0 | ||
+ | |R | ||
+ | |battery is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |low battery | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.net | ||
+ | |0 | ||
+ | |R | ||
+ | |220V voltage is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |220V fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.rt.net | ||
+ | |0 | ||
+ | |R | ||
+ | |rt net is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |rt net problem | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ground | ||
+ | |0 | ||
+ | |R | ||
+ | |ground is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ground fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm16io module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm16io module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifmlan is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifmlan fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |cpu is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |cpu fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifmnet is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifmnet fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifmdial is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifmdial fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm2l module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm2l module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifmext module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifmext module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |power supply <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |power supply <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |fpmled module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |fpmled module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifmr4 module <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifmr4 module <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> is ok | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.loop.alarm.<n> <br /> n=1..16 <br /> | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> has at least one device in alarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> no devices in alarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.loop.prealarm.<n> <br /> n=1..16 <br /> | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> has at least one device in prealarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> no devices in prealarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.alarm <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |no alarm on zone <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |alarm on zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.prealarm <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |no prealarm on zone <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |prealarm on zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.notice <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |no notice on zone <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |notice on zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.fault <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |no fault on zone <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |fault on zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.disabled <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.test <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not in test mode | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in test mode | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.test <br /> n=1..1000 | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> smoke detection enable | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> smoke detection disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |g<n>.alarm <br /> n=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |no alarm on group <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |alarm on group <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |g<n>.prealarm <br /> n=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |no prealarm on group <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |prealarm on group <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |g<n>.notice <br /> n=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |no notice on group <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |notice on group <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |g<n>.disabled <br /> n=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |group <n> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |group <n> is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> is not in alarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> alarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> is not in prealarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> prealarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> is not in notice | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> notice | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> is not in fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> out open | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> out closed | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240 | ||
+ | |0 | ||
+ | |R | ||
+ | |device <k> of loop <n> not in test | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <k> of loop <n> is in test | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |W | ||
+ | |turn off channel <o> of module ifm4io <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |W | ||
+ | |turn on channel <o> of module ifm4io <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only | ||
+ | |enable | ||
+ | |W | ||
+ | |enable channel <o> of module ifm4io <n> | ||
+ | |- | ||
+ | |disable | ||
+ | |W | ||
+ | |disable channel <o> of module ifm4io <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is not in alarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> alarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is not in prealarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> prealarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is not in notice | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> notice | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is not in fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> out is not active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> out is not active | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only | ||
+ | |0 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is not in test mode | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |ifm4io <k> channel <o> is in test mode | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.alarm <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is not in alarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> alarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.prealarm <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is not in alarm | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> prealarm | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.notice <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is not in notice | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> notice | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.fault <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is not in fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> fault | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.disabled <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is enabled | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> is disabled | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.out <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> out is not active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> out is active | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.out <br /> *compact version only | ||
+ | |0 | ||
+ | |W | ||
+ | |de-activate io <n> | ||
+ | |- | ||
+ | |1 | ||
+ | |W | ||
+ | |activate io <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n><br /> *compact version only | ||
+ | |disable | ||
+ | |W | ||
+ | |disable io <n> | ||
+ | |- | ||
+ | |enable | ||
+ | |W | ||
+ | |enable io <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2" |io.<n>.test <br /> *compact version only | ||
+ | |0 | ||
+ | |R | ||
+ | |io <n> is not in test | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |io <n> in test | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|write.coil.register.<r> | ||
+ | |1 | ||
+ | |W | ||
+ | |write "true" on the generic coil register <r> | ||
+ | |- | ||
+ | |0 | ||
+ | |W | ||
+ | |write "false" on the generic coil register <r> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | === UISET Actions === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !ID | ||
+ | !Attribute | ||
+ | !colspan="2"|Set to | ||
+ | |||
+ | |- | ||
+ | |||
+ | |z<n>.name | ||
+ | |value | ||
+ | |colspan="2"|name assigned to zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |g<n>.name | ||
+ | |value | ||
+ | |colspan="2"|name assigned to group <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |l<k>.d<n>.name | ||
+ | |value | ||
+ | |colspan="2"|name assigned to device <n> of loop <k> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|connection.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint connection = offline | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint connection = online | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|<datapoint_id>.1.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint with ID <datapoint_id> has value '1' | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint with ID <datapoint_id> has value '0' | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|<datapoint_id>.0.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint with ID <datapoint_id> has value '0' | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint with ID <datapoint_id> has value '1' | ||
+ | |||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | == Release Notes == | ||
+ | === 3.8.0 === | ||
+ | *initial release | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ''Inim Previdia are registered trademarks of Inim Electronics'' |
Latest revision as of 10:27, 30 June 2023
INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.
Contents
Communication
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.
HSYCO Configuration
Add a INIMPREVIDIA I/O Server in the I/O Servers section of the Settings and set its parameters:
Communication
- Address: IP address of the INIM PREVIDIA panel
- Port: TCP/IP port for MODBUS communication (default 502)
High Availability
- Shutdown when inactive: defaults to false.
Options
ID | Default | Values | Description |
---|---|---|---|
gui | true | true | enable support for the UI object, UISET actions and USER commands |
false | disable UI support | ||
startupevents | false | true | generate IO events also during the driver’s start-up phase |
false | start generating events only after HSYCO is aligned with the current status of the system | ||
unitid | 1 | > 0 | MODBUS unit ID of the INIM PREVIDIA panel |
pollingtime | 1000 | n >= 1000, n <= 30000 | the data polling interval, in milliseconds. |
loopsnumber | 16 | n = 1..16 | the number of configured loops |
groupsnumber | 240 | n = 1..240 | the number of configured groups |
zonesnumber | 1000 | n = 1..1000 | the number of configured zones |
model | ultra | ultra | Inim Previdia Ultra panel |
max | Inim Previdia Max panel | ||
compact | Inim Previdia Compact panel |
INIM PREVIDIA Compact panel requires loopsnumber set to 2
inimprevidia.ini
The inimprevidia.ini file is a specific configuration file located in the root directory.
This file is required to provide the I/O Server the name assignment of zones and devices.
This is an example of the file content:
previdia.z1 = Zone 1 previdia.g2 = Group 2 previdia.l1.d1 = Device 1 Loop 1 previdia.l8.d4 = Device 8 Loop 4
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server
If you have multiples INIM PREVIDIA I/O Servers:
previdia1.z1 = Zone 1 Previdia 1 previdia2.z1 = Zone 2 Previdia 2 previdia1.l1.d1 = Device 1 Loop 1 Previdia 1 previdia2.l2.d1 = Device 1 Loop 1 Previdia 2
Datapoints
ID | Value | R/W | Description |
---|---|---|---|
connection | online | R | connection established |
offline | R | HSYCO can't connect to the panel | |
reset | 1 | W | force panel reset |
buzzeroff | 1 | W | force buzzer off |
prealarmoff | 1 | W | force pre alarm off |
patrol | 1 | W | start patrol mode |
mute | 0 | W | disable panel mute |
1 | W | enable panel mute | |
l<k>.d<n> | enable | W | device <n> of loop <k> is enabled |
disable | W | device <n> of loop <k> is disabled | |
z<n> | enable | W | zone <n> is enabled |
disable | W | zone <n> is disabled | |
global.night.mode | 0 | R | night mode is not active |
1 | R | night mode is active | |
global.silence | 0 | R | panel is not muted |
1 | R | panel is muted | |
global.patrol | 0 | R | patrol mode is not active |
1 | R | patrol mode is active | |
global.buzzer.silence | 0 | R | buzzer is active |
1 | R | buzzer is not active | |
global.access.level | <n> | R | panel access level 1..4 |
global.alarm | 0 | R | no active alarms |
1 | R | at least one active alarm | |
global.prealarm | 0 | R | no active pre alarms |
1 | R | at least one active pre alarm | |
global.notice | 0 | R | no active notice |
1 | R | at least one active notice | |
global.fault | 0 | R | no faults |
1 | R | at least one fault | |
global.disabled | 0 | R | panel is enabled |
1 | R | panel is disabled | |
global.fault.rs485.1 | 0 | R | no rs485 1 power supply fault |
1 | R | rs485 1 power supply fault | |
global.fault.rs485.1 | 0 | R | no rs485 2 power supply fault |
1 | R | rs485 2 power supply fault | |
global.fault.battery | 0 | R | battery is ok |
1 | R | battery fault | |
global.low.battery | 0 | R | battery is ok |
1 | R | low battery | |
global.fault.net | 0 | R | 220V voltage is ok |
1 | R | 220V fault | |
global.rt.net | 0 | R | rt net is ok |
1 | R | rt net problem | |
global.fault.ground | 0 | R | ground is ok |
1 | R | ground fault | |
global.fault.ifm16io.<n> n=1..4 *ultra/max version only |
0 | R | ifm16io module <n> is ok |
1 | R | ifm16io module <n> fault | |
global.fault.ifmlan *ultra/max version only |
0 | R | ifmlan is ok |
1 | R | ifmlan fault | |
global.fault.emergency.cpu *ultra/max version only |
0 | R | cpu is ok |
1 | R | cpu fault | |
global.fault.ifmnet *ultra/max version only |
0 | R | ifmnet is ok |
1 | R | ifmnet fault | |
global.fault.ifmdial *ultra/max version only |
0 | R | ifmdial is ok |
1 | R | ifmdial fault | |
global.fault.ifm2l.<n> n=1..8 *ultra/max version only |
0 | R | ifm2l module <n> is ok |
1 | R | ifm2l module <n> fault | |
global.fault.ifmext.<n> n=1..24 *ultra/max version only |
0 | R | ifmext module <n> is ok |
1 | R | ifmext module <n> fault | |
global.fault.ifm4io.<n> n=1..16 *ultra/max version only |
0 | R | ifm4io module <n> is ok |
1 | R | ifm4io module <n> fault | |
global.fault.power.supply.<n> n=1..4 *ultra/max version only |
0 | R | power supply <n> is ok |
1 | R | power supply <n> fault | |
global.fault.fpmled.<n> n=1..7 *ultra/max version only |
0 | R | fpmled module <n> is ok |
1 | R | fpmled module <n> fault | |
global.fault.ifmr4.<n> n=1..16 *ultra/max version only |
0 | R | ifmr4 module <n> is ok |
1 | R | ifmr4 module <n> fault | |
global.loop.fault.<n> n=1..16 *ultra/max version only |
0 | R | loop <n> is ok |
1 | R | loop <n> fault | |
global.loop.disabled.<n> n=1..16 *ultra/max version only |
0 | R | loop <n> is enabled |
1 | R | loop <n> disabled | |
global.loop.alarm.<n> n=1..16 |
0 | R | loop <n> has at least one device in alarm |
1 | R | loop <n> no devices in alarm | |
global.loop.prealarm.<n> n=1..16 |
0 | R | loop <n> has at least one device in prealarm |
1 | R | loop <n> no devices in prealarm | |
z<n>.alarm n=1..1000 |
0 | R | no alarm on zone <n> |
1 | R | alarm on zone <n> | |
z<n>.prealarm n=1..1000 |
0 | R | no prealarm on zone <n> |
1 | R | prealarm on zone <n> | |
z<n>.notice n=1..1000 |
0 | R | no notice on zone <n> |
1 | R | notice on zone <n> | |
z<n>.fault n=1..1000 |
0 | R | no fault on zone <n> |
1 | R | fault on zone <n> | |
z<n>.disabled n=1..1000 |
0 | R | zone <n> is enabled |
1 | R | zone <n> is disabled | |
z<n>.test n=1..1000 |
0 | R | zone <n> is not in test mode |
1 | R | zone <n> is in test mode | |
z<n>.test n=1..1000 |
0 | R | zone <n> smoke detection enable |
1 | R | zone <n> smoke detection disabled | |
g<n>.alarm n=1..240 |
0 | R | no alarm on group <n> |
1 | R | alarm on group <n> | |
g<n>.prealarm n=1..240 |
0 | R | no prealarm on group <n> |
1 | R | prealarm on group <n> | |
g<n>.notice n=1..240 |
0 | R | no notice on group <n> |
1 | R | notice on group <n> | |
g<n>.disabled n=1..240 |
0 | R | group <n> is enabled |
1 | R | group <n> is disabled | |
l<n>.d<k>.alarm n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in alarm |
1 | R | device <k> of loop <n> alarm | |
l<n>.d<k>.prealarm n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in prealarm |
1 | R | device <k> of loop <n> prealarm | |
l<n>.d<k>.notice n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in notice |
1 | R | device <k> of loop <n> notice | |
l<n>.d<k>.fault n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in fault |
1 | R | device <k> of loop <n> fault | |
l<n>.d<k>.disabled n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is enabled |
1 | R | device <k> of loop <n> is disabled | |
l<n>.d<k>.out n=1..16,k=1..240 |
0 | R | device <k> of loop <n> out open |
1 | R | device <k> of loop <n> out closed | |
l<n>.d<k>.test n=1..16,k=1..240 |
0 | R | device <k> of loop <n> not in test |
1 | R | device <k> of loop <n> is in test | |
ifm4io.<n>.c<o> *ultra/max version only |
0 | W | turn off channel <o> of module ifm4io <n> |
1 | W | turn on channel <o> of module ifm4io <n> | |
ifm4io.<n>.c<o> *ultra/max version only |
enable | W | enable channel <o> of module ifm4io <n> |
disable | W | disable channel <o> of module ifm4io <n> | |
ifm4io.<n>.c<o>.alarm *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in alarm |
1 | R | ifm4io <k> channel <o> alarm | |
ifm4io.<n>.c<o>.prealarm *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in prealarm |
1 | R | ifm4io <k> channel <o> prealarm | |
ifm4io.<n>.c<o>.notice *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in notice |
1 | R | ifm4io <k> channel <o> notice | |
ifm4io.<n>.c<o>.fault *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in fault |
1 | R | ifm4io <k> channel <o> fault | |
ifm4io.<n>.c<o>.disabled *ultra/max version only |
0 | R | ifm4io <k> channel <o> is enabled |
1 | R | ifm4io <k> channel <o> is disabled | |
ifm4io.<n>.c<o>.out *ultra/max version only |
0 | R | ifm4io <k> channel <o> out is not active |
1 | R | ifm4io <k> channel <o> out is not active | |
ifm4io.<n>.c<o>.test *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in test mode |
1 | R | ifm4io <k> channel <o> is in test mode | |
io.<n>.alarm *compact version only |
0 | R | io <n> is not in alarm |
1 | R | io <n> alarm | |
io.<n>.prealarm *compact version only |
0 | R | io <n> is not in alarm |
1 | R | io <n> prealarm | |
io.<n>.notice *compact version only |
0 | R | io <n> is not in notice |
1 | R | io <n> notice | |
io.<n>.fault *compact version only |
0 | R | io <n> is not in fault |
1 | R | io <n> fault | |
io.<n>.disabled *compact version only |
0 | R | io <n> is enabled |
1 | R | io <n> is disabled | |
io.<n>.out *compact version only |
0 | R | io <n> out is not active |
1 | R | io <n> out is active | |
io.<n>.out *compact version only |
0 | W | de-activate io <n> |
1 | W | activate io <n> | |
io.<n> *compact version only |
disable | W | disable io <n> |
enable | W | enable io <n> | |
io.<n>.test *compact version only |
0 | R | io <n> is not in test |
1 | R | io <n> in test | |
write.coil.register.<r> | 1 | W | write "true" on the generic coil register <r> |
0 | W | write "false" on the generic coil register <r> |
UISET Actions
ID | Attribute | Set to | |
---|---|---|---|
z<n>.name | value | name assigned to zone <n> | |
g<n>.name | value | name assigned to group <n> | |
l<k>.d<n>.name | value | name assigned to device <n> of loop <k> | |
connection.label | visible | true | when datapoint connection = offline |
false | when datapoint connection = online | ||
<datapoint_id>.1.label | visible | true | when datapoint with ID <datapoint_id> has value '1' |
false | when datapoint with ID <datapoint_id> has value '0' | ||
<datapoint_id>.0.label | visible | true | when datapoint with ID <datapoint_id> has value '0' |
false | when datapoint with ID <datapoint_id> has value '1' |
Release Notes
3.8.0
- initial release
Inim Previdia are registered trademarks of Inim Electronics