dalporto
Lifetime Supporting Member
Hi all.
This is a very specific issue. My first time with a Modbus ProSoft. Customer setup doesn't make any sense but we're stuck with it.
Usually, on a complete Modbus setup (let say a Schneider PLC with a Magelis/Harmony screen), this is what I do for commands (it's actually more complicated, but let's keep it simple):
On the Modbus Prosoft on a 1756 rack, there are 2 data arrays. They make a distinction and don't use the same registers. One for the Read (Read commands and SP from screen (BO/AO)) and another one for the Write (Write statuses (BI/AI) to the screen).
And this is where I need help. I'm not sure if what I want to do can be done with that. It's either it can't be done, or I don't know how to. And if it cannot be done, I'll need to know the best practices about commands on a setup like that. It would be the first time I cannot do it, I manage to do that over DNP3 so it's weird if I cannot.
So, I set a command to 1 on InTouch. I'm receiving it in my Read data from the ProSoft. So far, so good.
Problem here is it doesn't look like I can change a "read" value from the screen in the PLC since it's originating from the screen. Fact is I can do it and I can see that it's working in the PLC internal tag list, but it won't reach the screen since the screen looks like it's communicating with the internal ProSoft database only, so the HMI command stays high, and I cannot reset it, which screws up totally my command concept.
So I'm wondering if there is a way to do it. I'm going to check if I can play with the read/write arrays over the same register, but that looks like a long and messy road.
And if it's not working, what would be the more "solid" way to do it? Can I pulse from InTouch? I don't know how neither.
Thanks.
This is a very specific issue. My first time with a Modbus ProSoft. Customer setup doesn't make any sense but we're stuck with it.
Usually, on a complete Modbus setup (let say a Schneider PLC with a Magelis/Harmony screen), this is what I do for commands (it's actually more complicated, but let's keep it simple):
- On the screen, I set _CMD with %MXXXX to 1;
- PLC receives it, pulse the "usable output" of my CMD block for 3 seconds (while %MXXXX is still high);
- PLC set %MXXXX back to 0 after the 3 seconds, meaning that the screen %MXXXX is now also back to 0 and ready for next "same" command.
- I'm making sure that the command doesn't fall between 2 Modbus scans by holding it for a while;
- I'm making sure that the command isn't latched in the PLC if I lose communication with the HMI / SCADA, so I don't rely on HMI/SCADA to put %MXXXX back to 0., and I then have nothing that could cycle endlessly.
On the Modbus Prosoft on a 1756 rack, there are 2 data arrays. They make a distinction and don't use the same registers. One for the Read (Read commands and SP from screen (BO/AO)) and another one for the Write (Write statuses (BI/AI) to the screen).
And this is where I need help. I'm not sure if what I want to do can be done with that. It's either it can't be done, or I don't know how to. And if it cannot be done, I'll need to know the best practices about commands on a setup like that. It would be the first time I cannot do it, I manage to do that over DNP3 so it's weird if I cannot.
So, I set a command to 1 on InTouch. I'm receiving it in my Read data from the ProSoft. So far, so good.
Problem here is it doesn't look like I can change a "read" value from the screen in the PLC since it's originating from the screen. Fact is I can do it and I can see that it's working in the PLC internal tag list, but it won't reach the screen since the screen looks like it's communicating with the internal ProSoft database only, so the HMI command stays high, and I cannot reset it, which screws up totally my command concept.
So I'm wondering if there is a way to do it. I'm going to check if I can play with the read/write arrays over the same register, but that looks like a long and messy road.
And if it's not working, what would be the more "solid" way to do it? Can I pulse from InTouch? I don't know how neither.
Thanks.