I’ve been playing with Ignition using multiple PLCs, and I’m having problems ONLY with one specific model - M580 from Schneider.
What happens with it, is that writing is quite slow. If I invoke a system.tag.writeBlocking I’ll have to wait quite a bit, and we had planned some operations where making sure the values are written is very important, as is response time.
Now, I have experienced this problem with other tools, like our current (and old) SCADA system, but there it can be mitigated by increasing the maximum sockets used by the modbus driver, and that has a big impact on write performance with minimum impact on the network traffic.
I did see on Ignition 8 Manual that there should be an option for “Concurrent Request” that might eventually do the same thing, but that option does not come up for me in either 8.0.14 and 8.0.12.
Anyone experienced something similar? Is there any way to improve this kind of performance?
With M580s and M340s we’ve pretty much exclusively used a third party OPC like Kepware and haven’t really experienced slow response unless there were external factors, like network issues, affecting it. We’ve not had to increase the max sockets per device to more than 1.
Are you connecting directly into the PLC or via a separate network card on the backplane?
We’re connecting directly to a network card and apparently, with no issues on the network.
As a side note, we did manage to have good performance with kepware too. For this particular PLC, we did have to increase max sockets though, in kepware.
M340 are having no issues in either Ignition or Kepware. This particular M580 PLC is controlling complex processes, and it does have a large number of tags, but we’re only capturing a small number.
We’re still in the process of choosing a tool (or combination of tools), and Ignition seems to offer the set of tools we need, and most of all, a combination of ease of use while also allowing to do complex things, so I’m really curious about this particular aspect to decide what gateway we should choose for our initial approach.
“Concurrent Requests” is an AB driver feature. A similar effect can be achieved with other drivers by using a second device connection to the same PLC. Use one connection for all the stuff that you just read (subscribed), watching the diagnostics for device load. Use the other connection for the (few) items that will be bidirectional.
We’re experiencing this problem even capturing only a couple of tags… It’s not that there is a HUGE difference, but after a while delays might sum up to a significant downtime between operations (24/7 operation). As it stands, we can “remove” this small delay with Kepware, but not with Ignition modbus driver so far.
I’ll link a small video (quick app install with watermark, but just to give an idea), and see if we’re not simply hoping for something utopic, or simply doing something wrong.
The tags you see are ALL the tags we have configured right now, and from that M580 we’re only using 6 tags (Bal21_e_Peso_Actual, Bal21_e_SP_Peso_vazia, SP_max_Vel_Bal21_P176, Teste_escrita_1_f2, Teste_escrita_2_f2 and Teste_escrita_3_f2). As you can see, reading is very nice, only write is having that small delay, and only on that PLC (we have Schneiders TSX Premium/M340/M580, and a couple of Siemens PLCs).
FWIW, enabling concurrent requests in the Modbus TCP driver is something we can do (and I think we have a feature ticket for it).
It’s not the same as AB where each concurrent request is also a logical CIP connection to the processor, but it’s the same basic idea, which as that more than 1 request is allowed to be issued at a time. This is possible on Modbus TCP (and only Modbus TCP) because every request has a sequence number associated with it in the Modbus TCP header.
I think many years ago before the driver was released we had this setting exposed but found that some of our test devices tended to respond poorly or close the connection all together when it was used.
Sorry, probably bad sentence building. But yea, I was just referring to the quality of the video, basically.
Oh, that would be interesting to try out. By the way, we're enjoying Ignition so far, nice set of features and the community seems to very very friendly too.
That doesn't even give us a hint at your problem. Please share the following:
Which driver did you select?
What addresses are you trying to read?
What errors are showing up in the wrapper log?
When you paste text from any errors, please use the "pre-formatted text" button after highlighting the pasted text. That will preserve line breaks and indentation for easy reading.
You can only read input registers (3xxxx) if you choose Mixed Topological and State RAM. Otherwise (and better), you must move the %IWs to %MWs are read them as holding registers. This is for an M340. I don't have an M580 so I am guessing it will be the same setup.