This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Universal Modbus TCP/RTU Slave
#72
Multiple resident scripts can't share the same RS-485 port. It should be enough just to block writing as needed.

Replace the whole handlers.writeregister function with this, modify writeallowed logic as needed.
Code:
local function writeallowed(slaveid)   if slaveid == 1 then     return grp.getvalue('1/1/1')   elseif slaveid == 2 then     return grp.getvalue('1/1/2')   end end handlers.writeregister = function(slaveid, fncode, data)   if #data ~= 4 then     return   end   local addr = touint16(data, 1)   local map = getmapping(slaveid, fncode)   if not map or not map[ addr ] then     return excodes.illegaldataaddress   end   local mapobj = map[ addr ]   if mapobj.len ~= 1 then     return excodes.illegaldataaddress   end   if writeallowed(slaveid) then     writevalue(mapobj, data, 3)   end   return data end

Replace the whole handlers.writeregisters function with this.
Code:
handlers.writeregisters = function(slaveid, fncode, data)   if #data < 5 then     return   end   local addr = touint16(data, 1)   local count = touint16(data, 3)   local bytes = touint8(data, 5)   if #data ~= (bytes + 5) then     return   end   if count == 0 or count > limits.writeregisters or bytes ~= count * 2 then     return excodes.illegaldataaddress   end   local map = getmapping(slaveid, fncode)   if not map then     return excodes.illegaldataaddress   end   if writeallowed(slaveid) then     for i = 0, (count - 1) do       local mapobj = map[ addr + i ]       if mapobj and not mapobj.readonly then         local offset = 6 + i * 2         writevalue(mapobj, data, offset)       end     end   end   return data:sub(1, 4) end
Reply


Messages In This Thread
Universal Modbus TCP/RTU Slave - by Daniel - 07.10.2022, 12:55
RE: Universal Modbus TCP Slave - by palomino - 07.10.2022, 17:30
RE: Universal Modbus TCP Slave - by Daniel - 07.10.2022, 17:53
RE: Universal Modbus TCP Slave - by Daniel - 07.10.2022, 17:55
RE: Universal Modbus TCP Slave - by palomino - 10.10.2022, 13:39
RE: Universal Modbus TCP Slave - by Daniel - 10.10.2022, 13:44
RE: Universal Modbus TCP Slave - by palomino - 11.10.2022, 16:22
RE: Universal Modbus TCP Slave - by palomino - 23.02.2023, 12:44
RE: Universal Modbus TCP Slave - by admin - 23.02.2023, 12:47
RE: Universal Modbus TCP Slave - by palomino - 24.02.2023, 12:41
RE: Universal Modbus TCP Slave - by admin - 24.02.2023, 12:48
RE: Universal Modbus TCP Slave - by palomino - 27.02.2023, 13:02
RE: Universal Modbus TCP Slave - by Daniel - 27.02.2023, 13:10
RE: Universal Modbus TCP Slave - by palomino - 27.02.2023, 14:00
RE: Universal Modbus TCP Slave - by Daniel - 27.02.2023, 14:03
RE: Universal Modbus TCP Slave - by palomino - 28.02.2023, 02:32
RE: Universal Modbus TCP Slave - by admin - 28.02.2023, 07:02
RE: Universal Modbus TCP Slave - by Fahd - 06.03.2023, 14:11
RE: Universal Modbus TCP Slave - by Daniel - 06.03.2023, 14:35
RE: Universal Modbus TCP Slave - by Fahd - 06.03.2023, 14:50
RE: Universal Modbus TCP Slave - by Daniel - 06.03.2023, 14:55
RE: Universal Modbus TCP Slave - by Daniel - 06.03.2023, 15:16
RE: Universal Modbus TCP Slave - by Fahd - 07.03.2023, 07:59
RE: Universal Modbus TCP Slave - by rw_echo - 14.03.2023, 05:22
RE: Universal Modbus TCP Slave - by Daniel - 07.03.2023, 11:55
RE: Universal Modbus TCP Slave - by rw_echo - 07.03.2023, 12:32
RE: Universal Modbus TCP Slave - by Daniel - 07.03.2023, 12:34
RE: Universal Modbus TCP Slave - by rw_echo - 07.03.2023, 12:49
RE: Universal Modbus TCP Slave - by Daniel - 07.03.2023, 12:59
RE: Universal Modbus TCP Slave - by David - 13.03.2023, 15:40
RE: Universal Modbus TCP Slave - by admin - 13.03.2023, 15:42
RE: Universal Modbus TCP Slave - by David - 13.03.2023, 15:58
RE: Universal Modbus TCP Slave - by Daniel - 13.03.2023, 16:00
RE: Universal Modbus TCP Slave - by David - 13.03.2023, 16:07
RE: Universal Modbus TCP Slave - by Daniel - 13.03.2023, 16:15
RE: Universal Modbus TCP Slave - by David - 13.03.2023, 16:32
RE: Universal Modbus TCP Slave - by Daniel - 13.03.2023, 16:41
RE: Universal Modbus TCP Slave - by admin - 13.03.2023, 16:45
RE: Universal Modbus TCP Slave - by David - 13.03.2023, 19:31
RE: Universal Modbus TCP Slave - by admin - 14.03.2023, 06:18
RE: Universal Modbus TCP Slave - by rw_echo - 14.03.2023, 07:39
RE: Universal Modbus TCP Slave - by Fahd - 14.03.2023, 08:27
RE: Universal Modbus TCP Slave - by admin - 14.03.2023, 08:15
RE: Universal Modbus TCP Slave - by rw_echo - 14.03.2023, 08:35
RE: Universal Modbus TCP Slave - by admin - 14.03.2023, 08:35
RE: Universal Modbus TCP/RTU Slave - by admin - 06.06.2023, 15:34
RE: Universal Modbus TCP/RTU Slave - by admin - 12.06.2023, 08:59
RE: Universal Modbus TCP/RTU Slave - by admin - 28.03.2024, 08:26
RE: Universal Modbus TCP/RTU Slave - by admin - 12.06.2024, 05:26
RE: Universal Modbus RTU - by Ranjeet - 14.06.2024, 07:24
RE: Universal Modbus TCP/RTU Slave - by admin - 12.07.2024, 07:14
RE: Universal Modbus TCP/RTU Slave - by admin - 16.04.2025, 07:06
RE: Universal Modbus TCP/RTU Slave - by admin - 22.04.2025, 05:32
RE: Universal Modbus TCP/RTU Slave - by admin - 22.04.2025, 09:01
RE: Universal Modbus TCP/RTU Slave - by admin - 14.08.2025, 09:11
RE: Universal Modbus TCP/RTU Slave - by admin - 25.05.2026, 09:30
RE: Universal Modbus TCP/RTU Slave - by admin - 25.05.2026, 09:47

Forum Jump: