So I'm using a single message instruction to read data out of multiple VFD's through an HMI screen. This is not new to me and I've been doing it for quite a while without issue. Until now. All the VFDs are in the project IO tree.
On my previous projects all my VFD IP addresses started at XXX.XXX.XXX.101 and went up from there.
I've started at a new company this month and was asked by my boss to get this submitted for standards approval. The hiccup is that their IP addresses for VFDs start in the XXX.XXX.XXX.51 range and go up to XXX.XXX.XXX.199.
When using something below the value of 100 the Message.Path.LEN value is 16. When using 100 or more the value of the Message.Path.LEN needs to be 17.
The problem I'm having is that when I update the message path to a value over 100 the Message.Path.LEN stays at 16 and so I get an incomplete (or pointed at the wrong device) value in the path as it leaves the last digit off in the message path. If I go to the controller tags the correct value is in the path in the ASCII data array but is not being used in the path.
I have tried to manually update the path length with compare and move instructions when cycling between the 2 different length paths but even though the path length changes in the message.path.LEN to the now correct length the message path does not update properly.
At that point if I look at the Message.Path.Data array everything is where it should be but when I look at the path in the actual message it is pointed to a VFD with a different IP address.
I'm using an emulator so the messages aren't actually completing but that shouldn't be an issue when just changing the path.
Anyone have any insight here? Seems like it would be a simple thing but??
On my previous projects all my VFD IP addresses started at XXX.XXX.XXX.101 and went up from there.
I've started at a new company this month and was asked by my boss to get this submitted for standards approval. The hiccup is that their IP addresses for VFDs start in the XXX.XXX.XXX.51 range and go up to XXX.XXX.XXX.199.
When using something below the value of 100 the Message.Path.LEN value is 16. When using 100 or more the value of the Message.Path.LEN needs to be 17.
The problem I'm having is that when I update the message path to a value over 100 the Message.Path.LEN stays at 16 and so I get an incomplete (or pointed at the wrong device) value in the path as it leaves the last digit off in the message path. If I go to the controller tags the correct value is in the path in the ASCII data array but is not being used in the path.
I have tried to manually update the path length with compare and move instructions when cycling between the 2 different length paths but even though the path length changes in the message.path.LEN to the now correct length the message path does not update properly.
At that point if I look at the Message.Path.Data array everything is where it should be but when I look at the path in the actual message it is pointed to a VFD with a different IP address.
I'm using an emulator so the messages aren't actually completing but that shouldn't be an issue when just changing the path.
Anyone have any insight here? Seems like it would be a simple thing but??