Posts: 13
Threads: 4
Joined: Jan 2024
Reputation:
2
Hi everyone,
I've integrated a Caleffi Conteca device on my LM and everything works well. I'll share my .json just after I'll solve this problem.
I would like to add the register in attached and have a different GA output for every kind of alarm. For example:
- bit0 - Errore on Flow Temperature - 0/5/0
- bit1 - Errore on return temperature - 0/5/1
- bit6 - Low Battery Alarm - 0/5/2
and go on for the other bit of alarm.
Can someone explain me how to do?
Thanks in advance.
Attached Files
Thumbnail(s)
Posts: 4928
Threads: 28
Joined: Aug 2017
Reputation:
225
------------------------------
Ctrl+F5
Posts: 13
Threads: 4
Joined: Jan 2024
Reputation:
2
(04.10.2024, 15:59) Daniel Wrote: see this
https://forum.logicmachine.net/showthrea...29#pid6729
Hi Admin and thanks for your answer.
My LogicMachine knowledge is not so pro to let me know how go on with this issue. Can you halp me a little bit more?
Code:
{
"name": "Alarm Status - bit 0 - Error flow temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask" : what can I use for reading bit0?
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm Status - bit 1 - Error return temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask" : what can I use for reading bit1?
"value_custom": {"01": "OK", "1": "Alarm"}
},
Please consider to help me.
Posts: 8066
Threads: 43
Joined: Jun 2015
Reputation:
469
Use this. I've also fixed incorrect value_custom (should be "0" instead of "01").
Code:
{
"name": "Alarm Status - bit 0 - Error flow temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x01,
"value_custom": {"0": "OK", "1": "Alarm"}
},
{
"name": "Alarm Status - bit 1 - Error return temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x02,
"value_custom": {"0": "OK", "1": "Alarm"}
},
Posts: 13
Threads: 4
Joined: Jan 2024
Reputation:
2
07.10.2024, 08:34
(This post was last modified: 07.10.2024, 08:35 by Tuwat47 .)
Hi Admin I don't have my LM for testing the result, but what do you think if I use this kind of .json for reading every single bit?
Code:
{
[
{
"name": "Alarm - bit 0 - Error flow temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x1,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 1 - Error return temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x2,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 6 - Low battery alarm",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x40,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 8 - Measurament unit mismatch on main counter",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x100,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 9 - Measurament unit mismatch on counter 1",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x200,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 10 - Measurament unit mismatch on counter 2",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x400,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 11 - Measurament unit mismatch on counter 3",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x800,
"value_custom": {"01": "OK", "1": "Alarm"}
},
{
"name": "Alarm - bit 12 - Measurament unit mismatch on counter 4",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x1000,
"value_custom": {"01": "OK", "1": "Alarm"}
},
]
}
If it will work I'll post my .json for Caleffi Conteca.
(07.10.2024, 08:20) admin Wrote: Use this. I've also fixed incorrect value_custom (should be "0" instead of "01").
Code:
{
"name": "Alarm Status - bit 0 - Error flow temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x01,
"value_custom": {"0": "OK", "1": "Alarm"}
},
{
"name": "Alarm Status - bit 1 - Error return temperature",
"bus_datatype": "bool",
"datatype": "uint16",
"type": "register",
"address": 119,
"value_bitmask": 0x02,
"value_custom": {"0": "OK", "1": "Alarm"}
},
Ok, perfect. I will try as soon as possible. Thanks in advance for your help Admin.
Posts: 8066
Threads: 43
Joined: Jun 2015
Reputation:
469
Fixed profile attached.
Attached Files
Posts: 2
Threads: 0
Joined: Aug 2023
Reputation:
0
11.03.2025, 07:12
(This post was last modified: 11.03.2025, 07:13 by nhemtman .
Edit Reason: HTML-code
)
Hi,
Could any of you help me? I need help with registers 138-139. It's a BITMAP32 register, where 0-15 are read as LSW and 16-31 are read as MSW (see example below), how are these parameterized in the modbus profile? I also attached the manual and the modbus profile I made. Thanks!
0x
00 10 00 71 > Byte 1 ( 0x00 ), Byte 2 (0x71 ), Byte 3 (0x00 ), Byte 4 (0x10 )
MSB, LSW
MSB: Most significant byte first
LSW: Least significant word first
In That example the following bits are set(counting starting at 0):
0 sensor error
5 pump 1 alarm
6 pump 2 alarm
7 pump 3 alarm
20 net supply
Attached Files
Thumbnail(s)
Posts: 8066
Threads: 43
Joined: Jun 2015
Reputation:
469
Use profiler app:
https://forum.logicmachine.net/showthread.php?tid=5911
Use Value bitmask option. Click the calculator icon to select the required bits. Set Modbus data type to uint32 and Object data type to 1 bit.
Posts: 2
Threads: 0
Joined: Aug 2023
Reputation:
0
(11.03.2025, 07:18) admin Wrote: Use profiler app: https://forum.logicmachine.net/showthread.php?tid=5911
Use Value bitmask option. Click the calculator icon to select the required bits. Set Modbus data type to uint32 and Object data type to 1 bit.
Thanks!