--- a/modbus/modbus.py Mon Dec 21 21:15:47 2020 +0000
+++ b/modbus/modbus.py Mon Dec 21 22:26:36 2020 +0000
@@ -140,14 +140,23 @@
"description": "Modbus request execution control flag",
"children": []})
entries.append({
- "name": "Request Status flag",
+ "name": "Modbus Request Status flag",
"type": LOCATION_VAR_MEMORY,
- "size": 16, # WORD flag
- "IEC_type": "WORD", # WORD flag
+ "size": 8, # BYTE flag
+ "IEC_type": "BYTE", # BYTE flag
"var_name": "var_name",
- "location": "W" + ".".join([str(i) for i in current_location]) + ".0.1",
+ "location": "B" + ".".join([str(i) for i in current_location]) + ".0.1",
"description": "Modbus request status flag",
"children": []})
+ entries.append({
+ "name": "Modbus Error Code",
+ "type": LOCATION_VAR_MEMORY,
+ "size": 8, # BYTE flag
+ "IEC_type": "BYTE", # BYTE flag
+ "var_name": "var_name",
+ "location": "B" + ".".join([str(i) for i in current_location]) + ".0.2",
+ "description": "Modbus Error Code received in Modbus error frame",
+ "children": []})
for offset in range(address, address + count):
entries.append({
"name": dataname + " " + str(offset),
@@ -897,9 +906,13 @@
if iecvar["LOC"][4] == 0:
loc_vars.append("u16 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_exec_req;" % (client_requestid))
loc_vars_list.append(str(iecvar["NAME"]))
- # Add if it is a Communication Status Flag (mapped onto %QWa.b.c.0.1), so last number is a '1'
+ # Add if it is a "Modbus Request Status flag" (mapped onto %QWa.b.c.0.1), so last number is a '1'
if iecvar["LOC"][4] == 1:
- loc_vars.append("u16 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_exec_status;" % (client_requestid))
+ loc_vars.append("u8 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_tn_error_code;" % (client_requestid))
+ loc_vars_list.append(str(iecvar["NAME"]))
+ # Add if it is a "Modbus Error code" (mapped onto %QWa.b.c.0.2), so last number is a '2'
+ if iecvar["LOC"][4] == 2:
+ loc_vars.append("u8 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_mb_error_code;" % (client_requestid))
loc_vars_list.append(str(iecvar["NAME"]))
client_requestid += 1
tcpclient_node_count += 1
@@ -947,9 +960,13 @@
if iecvar["LOC"][4] == 0:
loc_vars.append("u16 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_exec_req;" % (client_requestid))
loc_vars_list.append(str(iecvar["NAME"]))
- # Add if it is a Communication Status Flag (mapped onto %QWa.b.c.0.1), so last number is a '1'
+ # Add if it is a "Modbus Request Status flag" (mapped onto %QWa.b.c.0.1), so last number is a '1'
if iecvar["LOC"][4] == 1:
- loc_vars.append("u16 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_exec_status;" % (client_requestid))
+ loc_vars.append("u8 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_tn_error_code;" % (client_requestid))
+ loc_vars_list.append(str(iecvar["NAME"]))
+ # Add if it is a "Modbus Error code" (mapped onto %QWa.b.c.0.2), so last number is a '2'
+ if iecvar["LOC"][4] == 2:
+ loc_vars.append("u8 *" + str(iecvar["NAME"]) + " = &client_requests[%d].flag_mb_error_code;" % (client_requestid))
loc_vars_list.append(str(iecvar["NAME"]))
client_requestid += 1
rtuclient_node_count += 1