5580 PLC to VideoJet printer

Subsea7

Member
Join Date
Mar 2021
Location
UK
Posts
48
Hi guys, I am trying to send a simple ascii string, to a VideoJet printer from a ControlLogix PLC.

So I have been using the MSG instructions as per the related RA technote but hit some snags. I know how to set the MSG path, and I have to use the front Ethernet port of the CPU in slot 0. When testing comms to the printer using Putty on the laptop, I can communicate with the printer and send the string, using Telnet RAW mode. It responds with ACK so I know that works.

Next I got hold of the RA sockets test app, so using the PLC and a laptop, had some success sending the string from the PLC to the laptop, but now it has stopped working with error 16#0ff / extended error 16#0000_0044 which is nowhere to be found in the documentation. This error is at the OpenConnection stage. It was working earlier, I used DeleteAllSockets to clear any open sockets but it still now sticks on this issue.

Does anyone have experience of doing this task? I had not yet managed to send the string to the VideoJet printer from the PLC, but using the PC application from RA, I was at least getting the message from the PLC to the laptop, until this error struck and now it no longer even sends or connects to the laptop eweb TCP server app.

I rebooted the laptop, re-ran the EWEB app, same result. Short of rebooting the PLC which I don't want to do, I cannot get htis error to clear or the OpenConnection MSG to function any more.

Any help, or comments appreciated.
 
Last edited:
Update, I had found an error (stupid typo) that was causing the message not to send any more, but anyway moving on, the message from the PLC appears correctly at the laptop TCP Server app now, but when I send it to the VideoJet Printer, it does not work.

Has anyone gotten this to work? I want to reset a user prompted field which holds a length value in metres so that the operators can reset the counter using a single button, instead of reloading the whole printer job.

This involves sending "JDA|Field011=000000|CR" to the ethernet connected printer, as an ascii string. I can send the string with Putty every time, and it works.

Is there a fundamental difference with Telnet RAW compared to a socket write from the 5580 PLC?
 
Ah, no I haven't. In the past I tried Wireshark but found it confusing to use, and I'm an electronics and controls engineer. Maybe worth a dig into that. These VideoJet printers use something called the Zipher Text Communications protocol, I even spoke to their software developer and he had no ideas how to get it to work on a PLC. It should only need a socket connection and a datapacket sent, which should work with the MSG routines I have put together. Oddly enough, when you connect to the printer using PuTTy then it shows "under remote control" on the printer screen, and responds to all commands. When I poke a string at it from the PLC, it never shows that "remote control" message.
 
I guess you have to learn Wireshark and port mirroring.
Without traffic capture and compare, it will be just a guess.

At least you can post your ACD file here.
 
Last edited:
Ok, I had a bit of a play with wireshark, now oddly it never sees any packets emanating from PuTTy in RAW mode as I guess they are UDP datagrams and so are not captured. The printer only responds if PuTTy is in RAW mode, so perhaps this is the issue with the 5580, I might have to do a UDP mode MSG send. TCP socket transmission works from my PLC code, as I have a Rockwell supplied test app, called EWEB which can receive the data every time, so I know it is getting sent from the PLC.

My main issue is that the printer responds to PuTTy in RAW mode but does not if it is used in any other way such as Telnet or other modes, yet the EWEB app sees every message sent in any mode. So from this I can conclude the printer does not answer anything but RAW and I think this is using UDP?

EDIT: reading some more online seems to suggest PuTTy in RAW mode is using connected UDP and RAW sends, i.e. it just makes a connection over the network to the IP specified using the port indicated and then sends the data you type, in RAW format so no added info, headers or anything else. I think I have some example code for UDP in the CLX library so will try that.
 
Last edited:
Thanks for that. It does answer the main reason for that extended error code, but I'm past that problem. For me, the PLC sends the message but the printer ignores it. The printer responds to PuTTy but only in raw mode. So I've put a udp msg block together and waiting to test that from the 5580.
 
is the web application enabled in the videojet? you really need that zipher to communicate pc to plc to printer
 
is the web application enabled in the videojet? you really need that zipher to communicate pc to plc to printer

We have a 1580 so it doesn't support webview, but it does have a network connection and PuTTy works to control it, and send / receive messages. I can send "GJD" and it responds with the current job fields etc.

We need it to respond to a counter reset command (user prompted field) from the PLC so we can reset the meterage counter that it prints from when a new product goes through the printer. At the moment, the only way is to re-load the print job which is time consuming for the line operators and can lead to mistakes. The 1580 also has no digital inputs to use for reset and only responds to this Zipher protocol.
 
As I said, earlier, Wireshark would remove all guessing.

But if you want to play guessing game, please post your ACD code or you can do just sockets routine export. Also copy everything from a "working" Putty window to a text file. This will help us to compare.

Also - did you try to send print command from Logix to Putty (instead of printer) and then compare result?
 
Thanks to all for their excellent suggestions.

Wireshark cannot capture UDP packets, so nothing to share there unfortunately.

Sharing the code isn't a help either as the question revolves around how PuTTy communicates in RAW mode which is the only way the printer will respond. Wireshark sees NO packets from PuTTy in RAW mode, but does in TCP mode. The issue seems to have been the Socket mode, and should have been RAW socket so I am now using UDP comms.

I'd found when doing some research after posting earlier, that the way to emulate the successful PuTTy comms seems to be to use UDP and not TCP. I've got the code ready, it works with PuTTy and EWEB (Rockwell's own comms test program) listening in UDP mode, so I just need a chance to test with the printer and then confirm the solution works. I can send to PuTTy from the PLC no problem now. I am going to test UDP from the PLC to the printer next, I cannot test it just now, as the line is down for maintenance.
 
Last edited:
Wireshark cannot capture UDP packets, so nothing to share there unfortunately.
Not sure why, I can capture UPD without any issues.
Here is example using EWEB Test application from Technote 32962
Device rejected this UDP because it does not support this port, but you can see that data sent.

UDP2.PNG UDP1a.png
 
Last edited:

Similar Topics

I have a question. I work in a very large plant and this one (of many hundreds of control cabinets) contains one 5580 (1756-L83E), two 1756-L73...
Replies
6
Views
202
Hello Everyone, I am looking for AB 1765-L84ES Guard Logix 5580 Safety Controller Online. For testing my program with PLC & HMI, Is there...
Replies
6
Views
742
Hi... I have what is so-called "Limit Values" placed in the Safety PLC. These values ​​were written in REAL safety tags format. It turns out...
Replies
3
Views
426
Can anyone confirm that using contrologix 5580 controller is not possible to work with powerflex 527? It's been a couple of days now that i am...
Replies
8
Views
1,187
Folks, Putting together a system utilizing a Control Logix Gen 8 (5580) PLC w/ the L83e CPU. I'll be connecting to 8 different FLEX-IO drops...
Replies
13
Views
4,079
Back
Top Bottom