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.

Big problem with Modbus TCP
#1
Hi guys I'll hope you can help me!

I have an HL that communicate with 2 Risco intrusion stations and 2 Notifier fire stations and every station have 200 - 250 registers to read.
I use profiles, and my biggest problem is that: after few correct read, the HL, start to write wrong value on some group value and then stop to update all value of the register of the 2 fire stations, while the value of the 2 intrusion stations works correctly.

Between the HL and the fire station there's a moxa modbus converter that convert TCP modbus packets into serial modbus packets becauseĀ fire stations don't have only serial port.
From this converter I can see all packets that pass through, and I saw that HL every minutes send correctly questions and fire central answer correctly, but HL don't update group address..

Another think that don't work is the istruction "read_delay": 1 because the question that arrives to the moxa comes after 30ms and not 1 seconds that I write..

Someone can help me?
Reply
#2
Read delay might not be implemented on your device, it was only added recently. Is there anything in the error log?
Reply
#3
No Sad

Another think that happened when HL read all 4 stations is that the CPU/IO load arrives to 8-9 I think because I have Event Script that are linked to all object for checking if the sensor are in allarm, and if so send an email.
When HL stop to update group addresses of 2 fire station, CPU/IO load is 0.1, max 0.5
Reply
#4
Try reading values from a script, maybe this will help to identify why values are incorrect. Which ModBus data types are you using?
Reply
#5
Modbus type are all uint16 and bus type are all uint8
I'm working on it, when I'm able to test it in field I'll update you! Probably in 4-5 hours! Thanks Smile
Reply
#6
Are you sure that values don't overflow because object data type is smaller? For UINT8 any value larger than 255 will be written as 255.
Reply
#7
No the values that fire stations have are from 0 to 255 because every bit means a message (2nd bit set to 1 means esclusion, 6th bit set to 1 means allarm)
anyhow now this problem no longer happened.
After a full day of test this is what I understand:
  • with profiles, no matter what I do, but HL stop to update registers linked with profiles of the 2 fire stations after the first read, while registers of the 2 intrusion stations were update every interval
  • I write the script for reading the 2 fire stations, and it read all, but all the system is slowed and pratically unusable.. I'm working to optimize this script.
Reply
#8
Can you show the profile that's not working after the first read?
Reply
#9
How can I send you profiles, because when I try to attach it, it returns an error of extension..
Reply
#10
Try now, or rename it to .txt if it does not work.
Reply
#11
I have optimized the script and now all work perfectly!
I'll waiting for your response on the profiles
Thanks again! Big Grin
Reply


Forum Jump: