I have been playing with this using Modbus, talking to a Modicon M258. I haven't been able to get it to work at all. I have found a simulator utility called Mod_RSsim, which allows great troubleshooting on modbus comms. Anyway, in my M258 program, I can only seem to map variables to extended registers, which are in the 6xxxx range. I have successfully used advancedhmi to communicate with the simulator, reading and writing values in the 4xxxx range. However, when I try to access a value in the extended registers, I get an error saying invalid address and I can see on the simulator that no comms have taken place. So where in advancedhmi is it telling the driver that an address of 6xxxx is not valid?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-02-06
Ok, so through some experimentation I have discovered that I can in fact talk to the PLC, no simulator needed… I have also learned that I can access and modify the holding registers in the PLC, which are the values of 4xxxx. However, I can only seem to access these values on the word level, and what I need is the bit level.
I have tried using addresses like 40001:1, but that gives invalid address error. I also used 40001.1, but that seems to ignore anything after the decimal, so it is no different than using 40001. If I write a 1 to 40001, the first bit changes to true. If I write a 2, then the second bit becomes true, but the first goes false.
So I think there has got to be a way to access these addresses on the bit level directly. I just don't know what that way is. Can anyone give me some pointers on this?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have been playing with this using Modbus, talking to a Modicon M258. I haven't been able to get it to work at all. I have found a simulator utility called Mod_RSsim, which allows great troubleshooting on modbus comms. Anyway, in my M258 program, I can only seem to map variables to extended registers, which are in the 6xxxx range. I have successfully used advancedhmi to communicate with the simulator, reading and writing values in the 4xxxx range. However, when I try to access a value in the extended registers, I get an error saying invalid address and I can see on the simulator that no comms have taken place. So where in advancedhmi is it telling the driver that an address of 6xxxx is not valid?
Ok, so through some experimentation I have discovered that I can in fact talk to the PLC, no simulator needed… I have also learned that I can access and modify the holding registers in the PLC, which are the values of 4xxxx. However, I can only seem to access these values on the word level, and what I need is the bit level.
I have tried using addresses like 40001:1, but that gives invalid address error. I also used 40001.1, but that seems to ignore anything after the decimal, so it is no different than using 40001. If I write a 1 to 40001, the first bit changes to true. If I write a 2, then the second bit becomes true, but the first goes false.
So I think there has got to be a way to access these addresses on the bit level directly. I just don't know what that way is. Can anyone give me some pointers on this?