Hi all,
Line 2 cartoner, 1756-L73 on V32. Our machine UDT Carton has about 30 members in it. I added a DINT called RejectCount in the middle, after the speed members, and downloaded on Sunday.
Since then the line screens, Ignition through Kepware, show the wrong values for every tag below that member. Batch size shows the changeover time and so on. The upstream 1769-L33ER reads the whole thing with a MSG into a DINT buffer and COPs that into its own copy of the UDT, and it's shifted the same way. Above the new member everything's fine.
I restarted the Kepware runtime and the Ignition gateway and that changed nothing, so then I downloaded to the L73 again. Same.
The only thing that changed is that member. Is Kepware caching something? Or does adding a member in the middle maybe shift everything under it for anything reading that UDT from outside?
Middle or end, you said middle. Did you change the L33ER's copy of the UDT too? And which addressing mode is the Kepware channel on, symbolic or logical?
Middle, after Speed_Act. Didn't touch the L33ER, I didn't think a MSG cared about the layout. Kepware channel is logical blocking, or I think it is, whatever the default was when it got set up.
Both care about the layout. Inserting a member moves the byte offset of everything after it. The MSG hands the L33ER a block of raw data and your COP drops it into a structure with the old offsets, so everything after RejectCount lands one field late. The driver side works off a cached picture of the layout in logical addressing, and on our version that survived a runtime restart. Two things:
1. Kepware project, right click the device, run the automatic tag generation again, restart the runtime.
2. The L33ER needs the same UDT. Export it as L5X from the L73, import there, download.
Next time append at the end and keep a list of who else reads the UDT. There's a writeup on that side: https://plctr.com/best-practices-for-plc-program-documentation/
Regenerated the Kepware tags and restarted the runtime, and the line screens are right now, about 20 minutes' work. L33ER's still shifted, I haven't touched it because it needs a line stop.
Import the UDT, download at the next stop. Nothing else will fix that one.
L33ER done at the Tuesday changeover, UDT imported from the L5X export, downloaded, MSG data lines up again.
One member in the middle moved the offset of every member below it, and both the L33ER's copy and the Kepware cache were still built on the old ones. Rebuilding the Kepware tag database fixed the screens and importing the updated UDT fixed the MSG. RejectCount is at the end of the UDT now so the next one is less painful.
What I still don't get is why restarting the Kepware runtime on Sunday didn't clear that cache on its own. And line 3 consumes the same UDT over a produced tag, that connection's been faulted since Sunday and nobody said a word because the line was down for a mould change. Thanks northbay and boris_h.
Line 3 faulted and nobody rang you. That's the bit I'd worry about.