05.07.2023, 09:26
Hi ,
We have modbus device that we can read and write each indivual register via modbus poll. Also we can read all these register if we create a profile file includes only 1 register. But if we make a profile includes 5 register instead of 1 register , we have timeout problem and modbus communication turns red.
We tried 2 different profile files.
Profile 1 and test results :
With this profile file , at the beginning we read 2552, 2554 , 2566 . After 3 seconds, timeout error, modbus turns red and no read anymore.
"manufacturer": "Gree Klima",
"description": "Gree Klima Modbus",
"mapping": [
{"address": 2552, "name": "Klima On-Off-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2553, "name": "Operation Mode-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2554, "name": "Setpoint-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "writable": true, "value_multiplier": 0.1},
{"address": 2555, "name": "Fan Speed-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2566, "name": "IAT-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "value_multiplier": 0.1}
]
Profile 2 and test results :
With this profile file , at the beginning we can read all registers . After 3 seconds, timeout error, modbus turns red and no read anymore.
"manufacturer": "Gree Klima",
"description": "Gree Klima Modbus",
"mapping": [
{ "address": 2552, "read_count":4, "read_offset":0, "read_delay":0.1, "name": "Klima On-Off-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":1, "read_delay":0.1, "name": "Operation Mode-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":2, "read_delay":0.1, "name": "Setpoint-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":3, "read_delay":0.1, "name": "Fan Speed-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2566, "name": "IAT-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "value_multiplier": 0.1}
]
Problem 2 :
We cannot write any of this register. If we put only 1 register ( For example set point ) in to profile, there is no timeout problem and there is no read problem. But we cannot write the value to modbus.
Need advices.
Regards
We have modbus device that we can read and write each indivual register via modbus poll. Also we can read all these register if we create a profile file includes only 1 register. But if we make a profile includes 5 register instead of 1 register , we have timeout problem and modbus communication turns red.
We tried 2 different profile files.
Profile 1 and test results :
With this profile file , at the beginning we read 2552, 2554 , 2566 . After 3 seconds, timeout error, modbus turns red and no read anymore.
"manufacturer": "Gree Klima",
"description": "Gree Klima Modbus",
"mapping": [
{"address": 2552, "name": "Klima On-Off-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2553, "name": "Operation Mode-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2554, "name": "Setpoint-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "writable": true, "value_multiplier": 0.1},
{"address": 2555, "name": "Fan Speed-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true},
{"address": 2566, "name": "IAT-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "value_multiplier": 0.1}
]
Profile 2 and test results :
With this profile file , at the beginning we can read all registers . After 3 seconds, timeout error, modbus turns red and no read anymore.
"manufacturer": "Gree Klima",
"description": "Gree Klima Modbus",
"mapping": [
{ "address": 2552, "read_count":4, "read_offset":0, "read_delay":0.1, "name": "Klima On-Off-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":1, "read_delay":0.1, "name": "Operation Mode-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":2, "read_delay":0.1, "name": "Setpoint-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "writable": true },
{ "address": 2552, "read_count":4, "read_offset":3, "read_delay":0.1, "name": "Fan Speed-99", "datatype": "uint16", "bus_datatype": "uint8", "type": "register", "writable": true },
{ "address": 2566, "name": "IAT-99", "datatype": "uint16", "bus_datatype": "uint16", "type": "register", "value_multiplier": 0.1}
]
Problem 2 :
We cannot write any of this register. If we put only 1 register ( For example set point ) in to profile, there is no timeout problem and there is no read problem. But we cannot write the value to modbus.
Need advices.
Regards