I am using a 435NBX module with a compact logix to send data to a Zebra printer. its around 12 strings that i need to send, but the code that i sent has a timer, if this value is less than 100 ms the code has missing information, if is more than 100 ms the code has a repeated strings.
It is hard to tell what you are doing from that screenshot, but have you tried using the CONCAT instruction to get all 12 strings into 1 UDT string type? I have 30 strings that I send to a Zebra Printer using a 435USB. Once all of my part details are entered into the required elements of my first string array, I concatenate everything into a string tag of length 2480. It's a big boy, but I am sending a lot of data; roughly 2400 characters.
Something like this (Ladder image below: Capture):
I start with an empty "RTAStringToPrinter" and add each element of "RTAPrintString[*]" until I have all of my data in "RTAStringToPrinter". The 435USB sees this tag change and sends the data to the printer. I have an Inter-Message Delay of 500ms set on the 435USB so the PLC has time to concatenate the entire message, and then send all of the ASCII characters at the same time. Capture2 shows my PLC setup on the 435USB.
Mikey thank you for your support, we increase the length of the string and concatenate all of them in just one and change the length of the copy instruction to a constant number and works ok.