Modbus TCP Scnheider M580

Hello,

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?

Hello,

Thank you for the reply.

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.

Thanks again.

“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.

Thanks again for the reply.

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.

Here is the video

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).

Thanks again for all the help.

Nope. Not gonna do that. Even if it would install on Linux. And that definitely does not qualify as "linking a video".

Probably shouldn't suggest an app install will be necessary to watch the video.

1 Like

It’s just a sharepoint video link Phil, no installs

2 Likes

I think a couple wireshark captures highlighting the difference in traffic from Kepware vs. Ignition for a few writes would be helpful.

1 Like

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.

1 Like

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.

Bon jours j’ai essayé de lire les data de puis PLC shnider M340 sur ignition mais j’arrive pas ???

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.

Le problème j’arrive pas à lire par exemple %iw0.6.3 sur ignition sachant que jai utilise modbus tcp

Ignition only supports classic Modbus function codes. You must supply addresses in this format:

https://docs.inductiveautomation.com/display/DOC81/Modbus+Addressing

If there is no HR, IR, C, or DI addresses associated with %iw0.6.3, then Ignition will not be able to read it.

Ignition supports the standard memory areas documented at https://modbus.org/.

ceci devrait t'aider

1 Like

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.

1 Like