Sign in to follow this  
Followers 0
nileshsurya

Micrologix 1100 modbus communication

3 posts in this topic

I have a Micrologix 1100 PLC which I have configured as a MODBUS RTU Master to communicate with Modbus Compatible feeder protection relays daisy chained using an appropriate cable and 1763-NC01 cable. There are about 8 feeder protection relays from which I am reading 20 integers each by sending messages on channel 0 and the function code is "Read Holding Registers" also I am sending a "Write multiple coils" message for each relay to start and stop it over modbus. This means I am sending in total 8 Read and 8 Write messages (Total 16) to communicate with those Feeder Protection relays. As far as Modbus polling is considered I am having no problem in polling the feeder relays, in read as well as write operations and I am able to do them, but not in a satisfactory way. The problem I am facing is that each message errors intermittently and gets done once only after is errors for say about 3-4 times, this is happening with each and every message. Ie:- it errors for 3-4 times and then again gets done and the cycle continues.( I am incrementing two counters for each message to count how many times its DN and ER bits fire to judge the message successful completion rate) This results that the data I am receiving is not received in proper timing and is generally slow updating due to those errors. As I watched the Scan time of the PLC it is about 2 miliseconds. This is too small as regards to modbus polling. I hope this errors can be controlled or minimized if I am able to set the polling interval of the Modbus messages(the same as we do in prosoft modbus modules), but micrologix 1100 modbus message setup does not seem to have such setting ( it only has slave timeout option, which is not of much use in this case). I also tried to employ some timing mechanism to fire the messages ( like the messages are fired sequentially one after other based on a timer) but this also doesn't seem to work, in this scenario all the messages error and no message gets done. Could anyone suggest me a solution to this problem it would be very helpful for me. Can I use the SVC Instruction to solve the purpose, could anyone explain me what it does exactly. Configuring channel 0 as Modbus Master gives two options in the Protocol control section, 1) InterChar timeout (x1ms) and 2) Pretransmit delay (x1ms), I reduced the errors by increasing the value of the 2nd option till 500 ms, but then I could not eliminate the errors totally or minimize them to a satisfactory level. Please could anyone help me or suggest a solution as it is very necessary for me to optimize the system Thanx in advance Nilesh Surya

Share this post


Link to post
Share on other sites
I am not modbus fluent but am familiar with AB messaging and it sounds like your errors come from "flooding" the message buffer. Have you considered placing the message instruction in an STI routine which executes every 500 ms or so. Also have you looked at sequence or step logic. The 48 step sequencer in the Ab download section would with the addition of a timer allow you to send a new message every second or every 250 ms for example. or You could "stack" them and send each next message when the previous was done. And I don't mean by checking the done bit, I mean by watching the returning data or response code and then progressing on. Hope these ideas help.

Share this post


Link to post
Share on other sites
You need to first make sure that your electrical connection between the MicroLogix 1100 and the eight feeder protection relays is suitable. Are you familiar with RS-485 signalling ? What kind of cable did you use ? Did you install termination resistors ? How have you shielded and grounded the cable ? MSG instructions in A-B controllers are asynchronous to the program scan and are handled by a buffer. You don't just trigger them all at once and depend on the controller to sort them out, like you do when you enable scanlist members in a Prosoft card. Try creating a test program that sends only one Read message repeatedly to the furthest-away protection relay. Count the number of .DN bits and the number of .ER bits and compare those. Keep working on the physical installation until you can get 1000 .DN bits for every .ER bit.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0