I’m developing an huge project where the control remains in some Siemens PLCs (S7-300, S7-1200, S7-1500).
So, to connect Factory IO to them all, I’m thinking on OPC UA.
I’ve tried with Kepware but I have a problem: when I filter the nodes, Factory IO shows me all the “_” nodes like _address, _timestamp… and I need only the .value ones. Problem here is that I will run out of tags (I’ll be using 200/300 IO variables in Factory IO, and each Kepware tag has 16 nodes, so I’m talking about more than 3000 OPC UA nodes)
So, my questions are:
Can I filter in some way this “_” nodes if I use kepserver?
Will i have the same problem if I use Matrikon OPC server? (I’ve tried with kepserver trial, but i dont want to buy a matrikon license to have the same problem)
My last solution is to use a single PLC as a Master (for example, the S7-1500) connected to factory IO and exchanging variables with the other PLCs but… I prefer to communicate throught OPC UA
Take a look at the following page of the documentation, it includes instructions on how to get around this issue: OPC Client DA/UA - FACTORY I/O
The idea is to use a prefix in the OPC UA server nodes (e.g. ‘fio_’) and then use the start with filter in Factory IO in order to retrieve only these nodes from the server.
The problem here with Kepware (at least, because i dont know if this problem exists with Matrikon too) is that a tag has a lot of parameters “added” to the value.
Yesterday I did this filtering as you are suggesting, for example:
If i have a sensor I named the variable
lab_sensor
The problem is, when I filter as you say, the tags that FactoryIO are reading are
lab_sensor (this is the “value”, the only tag that I really want here)
lab_sensor._address
lab_sensor._timestamp
lab_sensor._highlimit
lab_sensor._lowlimit
lab_sensor._description
and so on (around 16 parameter each value)
For 9 variables, I have more than 100 tags in factoryIO
It doesn’t look like an elementary data type (Boolean, SByte, Byte, …). Take a look at the data type of the item configured in the server. You should use Boolean, Int32 and Float data types with Factory I/O.
But, as you can see, FIO explores the entire tags parameters
The selected item is “Siemens.SiemensLab.Lab_EntryConveyor._Address”, the fisical address for the Lab_EntryConveyor tag.
I didnt create it, its created by kepserver, so i cant delete it.
And, because it has the same beginning as my desired tag, I cant avoid FIO to explore it
(I’m sorry, as a new user i cant post 3 images in a post, so i divided it in three different sendings)
OK, I see. I believe there is no easy way to filter these items.
I would recommend that you create a new KEPServerEx6 project and configure your own channel, device, and items. This way you can add only the items you intend to use in Factory I/O.