A
The background:
I am a student researcher attempting to build a grain monitoring system using the tools provided by Liros Electronic in their Grain Watch System (all of the documentation is available here: http://www.grain-watch.com/downloads.html), but without using their software, as the eventual goal is to use an Intel Galileo/Arduino as the master.
The materials:
I am using the EasySYNC ES-U-2101-M (http://www.easysync-ltd.com/search.php?phrase=es-u-2101-m) in order to connect to a PC running Modbus Poll as the master. The system uses a network controller (GWAB) and network switch (GWNET) to connect to temperature sensor cables (GWSL). Grain Watch implements Modbus RTU, although they don't meet the protocol requirements exactly due to some hardware limitations: (http://www.grain-watch.com/documents/GWABModbus.pdf).
The problem:
I am able to transmit a message from master to slave, but the response never comes; I always receive a timeout error. The Tx LED in the EasySYNC lights up, and the Rx LED in the GWAB lights up, but Modbus Poll never receives a response from the slave. I can see the hexadecimal message transmitted, but I don't get any information in return. I have tried a variety of address, and I have tried incrementing/decrementing the addresses, but I still receive timeout errors.
I have wired and re-wired the system (I am a computer science student, not an engineer, but I received some help from people with proper training), and there doesn't appear to be a problem in the physical wiring. I have tried reversing cables in order to see if that makes a difference, but nothing changes.
In an attempt to troubleshoot, I have eliminated the GWNET switch from the system and attached the GWSL temperature cable directly to the GWAB controller in the NET1 connection (I have also tried NET3 and NET4, with addresses modified accordingly). I believe, based on the documentation that I should be polling address 40257, so I have entered 256 into the Modbus Poll line, per instructions (although I have tried 40257, 257, 258, etc.). I have also tried requesting anywhere from 1 to 77 registers, with 64 being the number I think I should be requesting. I have set all rotary switches according to the plans (SW1 to 1 and SW2 to 4) and the jumpers and dip switches are also set according to specifications. I am using Slave ID 1, but I have tried everything from 1 to 19 (the allowable addresses in this implementation). I have also adjusted response times in Modbus Poll, and that has no impact. If I try Slave ID 0, I get a response error rather than a timeout error, which I assume is correct, as it this represents a broadcast message, and there should be no response. Is this a correct?
I have contacted the manufacturer, and they have linked me to their documentation and another PLC simulator, but their developer no longer works with them, so there is only so much they can do to help me.
I am hoping that maybe someone here has familiarity with either the Grain Watch System itself or something similar or with the EasySYNC connector. I am also hoping that someone can provide me with some possible solutions or at least an idea of what I should be looking at as the culprit. Any suggestions that the community can offer are appreciated. I have been at this for about a week, and my inexperience with both Modbus and the hardware limits my ability to troubleshoot the problem effectively.
Thank you for taking the time to read this long post; I tried to be thorough, but if I missed anything important, please let me know.
I am a student researcher attempting to build a grain monitoring system using the tools provided by Liros Electronic in their Grain Watch System (all of the documentation is available here: http://www.grain-watch.com/downloads.html), but without using their software, as the eventual goal is to use an Intel Galileo/Arduino as the master.
The materials:
I am using the EasySYNC ES-U-2101-M (http://www.easysync-ltd.com/search.php?phrase=es-u-2101-m) in order to connect to a PC running Modbus Poll as the master. The system uses a network controller (GWAB) and network switch (GWNET) to connect to temperature sensor cables (GWSL). Grain Watch implements Modbus RTU, although they don't meet the protocol requirements exactly due to some hardware limitations: (http://www.grain-watch.com/documents/GWABModbus.pdf).
The problem:
I am able to transmit a message from master to slave, but the response never comes; I always receive a timeout error. The Tx LED in the EasySYNC lights up, and the Rx LED in the GWAB lights up, but Modbus Poll never receives a response from the slave. I can see the hexadecimal message transmitted, but I don't get any information in return. I have tried a variety of address, and I have tried incrementing/decrementing the addresses, but I still receive timeout errors.
I have wired and re-wired the system (I am a computer science student, not an engineer, but I received some help from people with proper training), and there doesn't appear to be a problem in the physical wiring. I have tried reversing cables in order to see if that makes a difference, but nothing changes.
In an attempt to troubleshoot, I have eliminated the GWNET switch from the system and attached the GWSL temperature cable directly to the GWAB controller in the NET1 connection (I have also tried NET3 and NET4, with addresses modified accordingly). I believe, based on the documentation that I should be polling address 40257, so I have entered 256 into the Modbus Poll line, per instructions (although I have tried 40257, 257, 258, etc.). I have also tried requesting anywhere from 1 to 77 registers, with 64 being the number I think I should be requesting. I have set all rotary switches according to the plans (SW1 to 1 and SW2 to 4) and the jumpers and dip switches are also set according to specifications. I am using Slave ID 1, but I have tried everything from 1 to 19 (the allowable addresses in this implementation). I have also adjusted response times in Modbus Poll, and that has no impact. If I try Slave ID 0, I get a response error rather than a timeout error, which I assume is correct, as it this represents a broadcast message, and there should be no response. Is this a correct?
I have contacted the manufacturer, and they have linked me to their documentation and another PLC simulator, but their developer no longer works with them, so there is only so much they can do to help me.
I am hoping that maybe someone here has familiarity with either the Grain Watch System itself or something similar or with the EasySYNC connector. I am also hoping that someone can provide me with some possible solutions or at least an idea of what I should be looking at as the culprit. Any suggestions that the community can offer are appreciated. I have been at this for about a week, and my inexperience with both Modbus and the hardware limits my ability to troubleshoot the problem effectively.
Thank you for taking the time to read this long post; I tried to be thorough, but if I missed anything important, please let me know.