Line 5 supervisory controller, 1756-L83E, reading production counts off four 1769-L33ER machine controllers with CIP Data Table Reads on a 500ms trigger.
Added two new reads to the case packer this week. CP_Count_Good works, .DN every 500ms. CP_Count_Reject on the same controller, same path, same MSG setup, errors with 16#0004 extended 16#0000. Both are controller scope DINTs on the packer, spelled exactly the same in both projects, I copied and pasted. The reject counter went in last month, the OEM added it. I deleted and recreated the MSG and checked the element count, no difference. Still errors.
Does the source tag have to be inside a UDT for this to work? The good count is in a UDT, the reject one is a plain DINT. Or is it something the OEM did to that reject tag when they put it in last month?
Doesn't need a UDT. Pretty sure that's not it. 16#0004 on a data table read is usually the target saying it can't find that tag. Same firmware both ends, 33.011? And on the packer, open CP_Count_Reject in the tag editor and read me every column, not just the type. Scope, External Access, Constant.
What's the External Access column for? I've never touched it. Not sure I get it.
Both 33.011. Tag editor on the packer: CP_Count_Reject, DINT, controller scope, External Access says None. CP_Count_Good next to it says Read removed link I didn't set either of them, the OEM did. Stuck on this one.
External Access None hides the tag from anything outside the controller, MSG, HMI, OPC. Fails like a missing tag, hence the 0004, as far as I know. finn, that column is who outside can touch it: Read/Write, Read Only, None. Read Only on the packer is all a read needs. Decent article on the MSG side: https://plctr.com/utilizing-ethernet-ip-in-plc-communication/
Set External Access to Read Only on the packer tag, online edit, accepted. MSG went .DN on the next trigger, 500ms, rejects showing on the line overview. Fixed now.
So the OEM left CP_Count_Reject at External Access None and the read failed like the tag wasn't there. One dropdown to Read Only. Simple fix.
What I still don't know is whether the OEM set None on purpose, since their new tags all have it, which makes me wonder if it's deliberate on their end and nobody ever told us why. Emailed them. Also tried Read/Write first by habit and then thought better of it, a supervisory controller has no business writing to a reject counter.
Thanks hannah, louk, and finn for asking the question I should have.
Some OEM templates set None on everything. Good habit. Bad surprise.