ML1100 not receiving information in ASCII buffer?

Join Date
Jun 2012
Location
Davis
Posts
5
I am trying to interface the ML1100 with a colorimeter (Minolta CR400) and am having some issues receiving the data from the colorimeter. I am able to send calibration command to the instrument using AWA (or AWT) and I know it is working because the instrument flashes three times in order to check the color of a calibration plate.

My issue is that once the calibration is done I try to use ACB to check the number of characters in the buffer (as well as ARL to read the response) and the PLC does not find any characters in the buffer (shows up as 0 in ACB and ARL). I used hyper terminal with the minolta and hyperterminal received a response immediately after the three flashes (the response in hyperterminal is OK00 to indicate that the calibration is complete, and in the PLC code I am searching for 6 characters which would be OK00^M^J). So i know that the instrument is outputting data, I just cant figure out why the PLC isnt getting it? Any help on this? I have also tried adding a small time delay after the three flashes are done (about 5 seconds) to allow for any delay in the instrument outputting data, although I dont think this is the case.

Thanks
 
Can you set the instrument to delay before sending the response? Many times the turn-around loses characters. Keep checking for a while. Make sure your expected 'end of line' characters are correct.
 
I do not believe you can set a delay for the response. I have also tried having a delay of about 45 seconds after the calibration finishes and still got no characters in the buffer. The minolta outputs its responses almost instantaneously with the several different commands I tried in hyperterminal, so I am not sure how these characters are getting lost between the minolta and PLC (unless I am somehow using ACB wrong). With ACB i am using a control file with a LEN of 6, if this number is too big or small will ACB not see any characters in the buffer? I have the PLC port 0 set up for ASCII, 9600bps which is what the minolta uses by default.

One other question, the computer I am using with hyperterminal is pretty old and hyperterminal does not actually display the termination characters coming from the minolta although i am bout 90% sure they are ^M^J. Is there a way to see them?
 
Last edited:
If the response has standard end of line characters then use those instead of a buffer length. At the end of the transmission clear the buffer (it's been so long since I've used straight ASCII) then begin waiting for a buffer to fill to standard end-of-line characters.
 
Have you got your termination characters set correctly? Have you tried the ABL instruction?

This is how my I programmed my last ML1100 ASCII project.

1) ACL instruction to clear read/write buffers
2) AWA instruction to send command to device
3) ABL instruction to see if there has been a response
4) If there has been a response, the .POS control file for the ABL instruction will contain the amount of characters. Move this value to .LEN in the control file for the ARL instruction.
5) ARL instruction to read the response.

I had around half a second delay between each step in my program because speed wasn't critical.
 
I have not tried the ABL instruction yet but will do so and get back to you with what happens. I have my termination characters set to \d and \a which should be ^M and ^J (correct me if I'm wrong). lucky for me the minolta's manuals dont actually specify what termination characters it outputs (whoopdie dooo). But I am updating a program from last year that used a different model of colorimeter (written by someone else) and that model used ^M^J, so Im thinking this should be correct (*hoping). Thank you guys for the responses
 
So i tried the ABL instruction (and used a 15 second delay after the calibration) and still came up with no characters in the buffer :/
not quite sure where to go from now... when you use ABL do you have to have the exact number of characters you are looking for in the LEN word for the control file you are using?
 
So i tried the ABL instruction (and used a 15 second delay after the calibration) and still came up with no characters in the buffer :/
not quite sure where to go from now... when you use ABL do you have to have the exact number of characters you are looking for in the LEN word for the control file you are using?

No, as far as I know the ABL just looks at the read buffer for the termination characters you have specified in the channel configuration and displays the number of characters found.

I suggest downloading the program RealTerm (http://realterm.sourceforge.net/), it is much more powerful than Hyperterminal and you should be able to see the termination characters the device is using.
 
Do you guys have any idea why the EU bit would ever be set for the ARL instruction but the instruction doesnt actually ever run? There should not be anything else in the queue in this case. Does this mean that there simply isnt anything for it to read? Is there any reason anything would get deleted from the buffer aside from using a clear buffer instruction?
 

Similar Topics

I'm looking to implement a low-cost, efficient method of communicating some integer values to an R30iB robot from a Rockwell 1100 PLC. I am not...
Replies
8
Views
1,722
Hello all, I am trying to setup my MicroLogix 1100 as a modbus RTU master for a modbus network containing multiple modbus RTU slaves. I currently...
Replies
7
Views
3,915
We have a machine that keeps losing its program at random intervals; sometimes 2x-3x in a shift, sometimes will go over 1wk without issue. I had a...
Replies
9
Views
2,926
Just asking for clarification here, but from my research all I need is a 500 ohm resistor across the AI and the common? Heres my schematic. I...
Replies
5
Views
2,571
I have a CLX L61 and I'm trying to read from and write to a Micrologix 1100. I'm attempting to read 200 REAL elements but I'm receiving an error...
Replies
2
Views
1,457
Back
Top Bottom