I'm trying to use this node: node-red-contrib-cip-st-ethernet-ip and would like to read an array from the PLC. I've already successfully established communication and are able to read individua tags. But since you have to provide the given tag's name and data type before accessing the data, how could I be able to grab an array? There's no array/object data type I believe in the tag list chart.
I'm trying to read batches of arrays, these come as array[*], where * is a number that changes throughout the day. The arrays aren't that big, about 20 values inside. But the contents inside the array do come in different data types, some strings and some dint.
For example, right now the PLC sends an Array[123] with the 20-ish tags and current values, we would like to grab it through nodered and do something with the data inside. After some values change in the PLC a few seconds later, it proceeds to send the array again with same tags but new values but now it comes as Array[124]. And so on...
Is it possible through the mapping to grab whatever current batch is available in a flexible way? and, to have the array hold inside different data type values?
I did some more research to see if what you are asking is possible with a function node. In my digging, I came across documentation that the underlying npm module doesn't currently support capturing arrays.
I will dig into other npm modules to see if any support.
I'm still unable to access array data, tried the mapping method you mentioned but apparently it only changes de name of the tag being read.
I've been looking around with the library the node uses 'st-ethernet-ip' and there should be tools to allow reading array data. But can't seem to find how with the node itself.
Also, the node reads global tags by default, but when adding another scope to the tag list, to enable reading local tags, it doesnt work either, I'm unable to read local tags.
Sida note: The PLC browser still doesnt work and dont know how to fix that.