You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Reply
Thread Tools Display Modes
Unread November 18th, 2019, 01:16 PM   #1
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
TIA portal - modbus RTU intermitent fault

Hi!

I communicate with an onboard communications board modbus RTU. I communicate with 5 VFDs (Parker AC10) and each has 4 calls of MB_Master. So 20 in total.

Everything is working fine with no error for 99% of the time, but sometimes I get a errorStatus 80C8 on the MB_master block wich indicates "slave timeout".

I get this error on ONE of my 4 blocks for the slave and then it just keep running the sequence and next time it is OK again. It can run for a couple of hours and then it triggers on another VFD and another block. It seems random to me.

I guess that maybe the comm gets corrupted somehow and respond with an error, is there anything I can set to make this "better". Or has anyone encountered smiliar findings?

I have terminated both ends with 120Ohm resistor

/Tim
  Reply With Quote
Unread November 18th, 2019, 01:29 PM   #2
gclshortt
Member
Canada

gclshortt is offline
 
gclshortt's Avatar
 
Join Date: Dec 2014
Location: Cobourg
Posts: 2,952
Hi Tim,
It sounds like you could have some noise on the communication line. I would try dropping the speed of the network to see if the communications improve. If you are running 19200 baud then drop to 9600 baud.
Regards,
__________________
Garry
https://www.accautomation.ca
Connect with us on Facebook: facebook.com/accautomation/
  Reply With Quote
Unread November 18th, 2019, 03:22 PM   #3
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Quote:
Originally Posted by gclshortt View Post
Hi Tim,
It sounds like you could have some noise on the communication line. I would try dropping the speed of the network to see if the communications improve. If you are running 19200 baud then drop to 9600 baud.
Regards,
Thanks for the suggestion! We are running 9600 now, when Im on site again I can try a lower setting
  Reply With Quote
Unread November 18th, 2019, 05:12 PM   #4
Lare
Member
Finland

Lare is offline
 
Join Date: Jan 2006
Location: Finland
Posts: 1,189
How you enable next query?


There should be only one query at time. 9600baud should not be problem
120ohms resistors on both side of wiring?
  Reply With Quote
Unread November 18th, 2019, 09:09 PM   #5
danw
Member
United States

danw is offline
 
danw's Avatar
 
Join Date: Oct 2004
Location: midwest, USA
Posts: 3,013
The comm manual for Siemens ET200SP CM PtP says error 80C8 is "the slave does not respond within the set time". The associated suggestions are to check the data transfer speed, parity, and the wiring of the slave.

I think the suggestions miss the point. It's somewhat speculative because I only have a Siemens manual an no Siemens experience, but I do have other Modbus experience and other Modbus masters 'time-out' when the slave does not respond because there's a time-out setting. If a complete and valid message has not been received by the end of the designated time period, the master 'times-out'. I think this a more likely cause than than parity or wiring. If the slave never responded, then yes, check the parity, wiring and baud rate, but in this case those factors must be correct because this is an intermittent, occasional error, not a dead slave than never responds.

Modbus is NOT deterministic. If a slave's micro gets tied up doing whatever, it's likely to do the Modbus thing last, because it's just a comm option added way after the main functions were coded. It is not at all unusual for one slave device to be slower than another in replying.

Yes, you can play around with the baud rate, but given how a time-out error is normally generated by other (most, if not all) Modbus masters, I think the better bet is to find the setting that tells the master how it waits for a slave to reply and to increase that value slightly. Then track the incidence of errors at the extended 'time-out' period to see if and how much it improves.
  Reply With Quote
Unread November 19th, 2019, 02:16 AM   #6
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Quote:
Originally Posted by Lare View Post
How you enable next query?


There should be only one query at time. 9600baud should not be problem
120ohms resistors on both side of wiring?
I have a signal at REQ (contantly, the manual says I can use LEVEL signal)
when I get done or error from that block it moves on to the next block.

Yes, 120ohm resistor externally on the VFD side and internally in the CB1241 module on my s7-1200.
  Reply With Quote
Unread November 19th, 2019, 02:17 AM   #7
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Quote:
Originally Posted by danw View Post
The comm manual for Siemens ET200SP CM PtP says error 80C8 is "the slave does not respond within the set time". The associated suggestions are to check the data transfer speed, parity, and the wiring of the slave.

I think the suggestions miss the point. It's somewhat speculative because I only have a Siemens manual an no Siemens experience, but I do have other Modbus experience and other Modbus masters 'time-out' when the slave does not respond because there's a time-out setting. If a complete and valid message has not been received by the end of the designated time period, the master 'times-out'. I think this a more likely cause than than parity or wiring. If the slave never responded, then yes, check the parity, wiring and baud rate, but in this case those factors must be correct because this is an intermittent, occasional error, not a dead slave than never responds.

Modbus is NOT deterministic. If a slave's micro gets tied up doing whatever, it's likely to do the Modbus thing last, because it's just a comm option added way after the main functions were coded. It is not at all unusual for one slave device to be slower than another in replying.

Yes, you can play around with the baud rate, but given how a time-out error is normally generated by other (most, if not all) Modbus masters, I think the better bet is to find the setting that tells the master how it waits for a slave to reply and to increase that value slightly. Then track the incidence of errors at the extended 'time-out' period to see if and how much it improves.
I'll check where I can change that value and try. Thanks!
  Reply With Quote
Unread November 19th, 2019, 02:31 AM   #8
Lare
Member
Finland

Lare is offline
 
Join Date: Jan 2006
Location: Finland
Posts: 1,189
It is located to Com_load_block Datablack area. By default it have 1000ms value I think.
  Reply With Quote
Unread November 20th, 2019, 04:14 AM   #9
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Ok so I have implemented some timers to see how long the fault is active etc. I have implemented it on one of the 20 MB_Master block so still waiting for a fault. But I have some more information:

A normal response to a block from REQ to DONE is 35ms, some block have 25 read register so I guess this takes longer so I think about 1 second it takes to go through all blocks.

I have seen the VFD trip that is active from 271ms to 1,5seconds. But I haven't been able to see how long it takes for the actual block to get ERROR but it seems to take less then the 1000ms timeout, at least sometimes.

However I have encountered another fault, "data length to long". It seems very strange, this block is communicating whole the time and getting DONE signal. Can the whole "send message" or " the recieved data get corrupted somehow?

Should I add time between the MB_Master REQ signals?

/Tim

Last edited by rQx; November 20th, 2019 at 04:19 AM.
  Reply With Quote
Unread November 20th, 2019, 12:28 PM   #10
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Ok, so now I have some more time values.

One MB_master got ERROR after 187ms and another got 1sec and 65ms. So it's not just a internal timeout it seems.
  Reply With Quote
Unread November 20th, 2019, 01:12 PM   #11
danw
Member
United States

danw is offline
 
danw's Avatar
 
Join Date: Oct 2004
Location: midwest, USA
Posts: 3,013
Quote:
Originally Posted by rQx View Post
I have terminated both ends with 120Ohm resistor
It's a serial multidrop network - Master > VFD 1 > VFD 2 > VFD 3 > VFD 4 > VFD 5.

So terminating resistors are on the Master and VFD 5, correct?
  Reply With Quote
Unread November 20th, 2019, 01:15 PM   #12
danw
Member
United States

danw is offline
 
danw's Avatar
 
Join Date: Oct 2004
Location: midwest, USA
Posts: 3,013
Quote:
Originally Posted by rQx View Post
One MB_master got ERROR after 187ms and another got 1sec and 65ms.
Are both of these errors 80C8 errors?
  Reply With Quote
Unread November 20th, 2019, 02:53 PM   #13
Lare
Member
Finland

Lare is offline
 
Join Date: Jan 2006
Location: Finland
Posts: 1,189
Quote:
Originally Posted by rQx View Post

Should I add time between the MB_Master REQ signals?

/Tim

It is at least good practise, since you can have collision on data otherwise.
Send next query only when query before have Done or Error signal.


For jamming if done or error bit is not setted for some reason, you can reset all querys if nothing is sended like 5 or 10second interval.

Last edited by Lare; November 20th, 2019 at 03:10 PM.
  Reply With Quote
Unread November 20th, 2019, 03:09 PM   #14
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Quote:
Originally Posted by danw View Post
It's a serial multidrop network - Master > VFD 1 > VFD 2 > VFD 3 > VFD 4 > VFD 5.

So terminating resistors are on the Master and VFD 5, correct?
Yes, correct

Quote:
Originally Posted by danw View Post
Are both of these errors 80C8 errors?
Yes, they are
  Reply With Quote
Unread November 20th, 2019, 03:10 PM   #15
rQx
Member
Sweden

rQx is offline
 
Join Date: Oct 2010
Location: Trelleborg
Posts: 714
Quote:
Originally Posted by Lare View Post
It is at least good practise, since you can have collision on data otherwise.
Send next query only when query before have Done or Error signal.


For jamming if done or error bit is setted, you can reset all querys if nothing is sended like 5 or 10second interval.
Yes, that is what I do. Wait for DONE or ERROR signal and then move on. I wonder if I should have more time after this so be 100% sure the previous block is inactive.
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
Micro800 and modbus RTU CRC danno4200 LIVE PLC Questions And Answers 2 November 17th, 2019 04:39 PM
License for TIA Portal ( from S7 to TIA ) Oliver Micka LIVE PLC Questions And Answers 2 November 29th, 2016 07:40 AM
MODBUS RTU <--ethernet--> MODBUS RTU farhanm LIVE PLC Questions And Answers 1 January 27th, 2016 04:34 PM
Siemens OP77B Trouble in TIA Portal Tim James LIVE PLC Questions And Answers 4 December 24th, 2012 03:27 PM
RSLogix User Fault Routine jthornton LIVE PLC Questions And Answers 17 October 23rd, 2008 03:55 PM


All times are GMT -5. The time now is 10:02 PM.


.