Skip to content

Instantly share code, notes, and snippets.

@128keaton
Created August 11, 2023 16:04
Show Gist options
  • Save 128keaton/3b0d9c822fa38c80bf21614b94bb50a5 to your computer and use it in GitHub Desktop.
Save 128keaton/3b0d9c822fa38c80bf21614b94bb50a5 to your computer and use it in GitHub Desktop.
sub callback_modbus_slave_reply(byref request_item as modbus_request_item, byref reply as string)
dim bytes as byte(255) = reply
dim short_data as short
dim data as float = 0
if request_item.device_id=GENERIC_DEVICE_ID ' This needs to be set from somewhere else
AND request_item.protocol=modbus_RTU
AND request_item.interface_number=SER_MB_SERIAL then
if request_item.start_register=400 AND request_item.request_function=ReadInputRegisters then
dim regvalue as long = 0+((bytes(0) SHL 8) OR bytes(1))
if regvalue>32767 then
regvalue=regvalue-65536
var_BP02_TEMP_update_completed(regvalue)
else
var_BP02_TEMP_update_completed(regvalue)
end if
data=regvalue
end if
if request_item.start_register=404 AND request_item.request_function=ReadInputRegisters then
dim regvalue as long = 0+((bytes(0) SHL 8) OR bytes(1))
var_BP02_HUM_update_completed(regvalue)
data=regvalue
end if
if request_item.start_register=0 AND request_item.request_function=ReadInputRegisters then
dim regvalue as long = 0+((bytes(0) SHL 8) OR bytes(1))
if regvalue>32767 then
regvalue=regvalue-65536
var_R444A01_TEMP_update_completed(regvalue)
else
var_R444A01_TEMP_update_completed(regvalue)
end if
data=regvalue
end if
if request_item.start_register=1 AND request_item.request_function=ReadInputRegisters then
dim regvalue as long = 0+((bytes(0) SHL 8) OR bytes(1))
var_R444A01_HUM_update_completed(regvalue)
data=regvalue
end if
end if
end sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment