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
Old May 15th, 2018, 04:16 PM   #1
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
CPS: Instruction not certified for use in Safety routines

Using Studio 5000 Version 28.02 Professional
Processor is a ControlLogix L73S with L7SP safety partner

I always use the Synchronous Copy [CPS] instruction to copy my consumed tags because potentially they could change partway through the copy and end up with part of the data from one instant in time and the other part from a later time. I have had good results with this method.

I’m now working on a consumed tag that’s used in a safety task and can’t get the CPS instruction to work.

It looks like the CPS instruction isn’t available in the menu and if I paste it in I get the following error:
“CPS: Instruction not certified for use in Safety routines”

Why wouldn’t the CPS instruction be certified for safety? I'm guessing because it locks the tag for the duration of the copy and its slow so the scan time can't be guaranteed or something like that but I would like to know the real reason.



if the CPS is not available then what’s the best way to copy a consumed tag in a safety task?



I am copying UDTs with lots of tags.

Thanks.
  Reply With Quote
Old May 15th, 2018, 05:29 PM   #2
ASF
Lifetime Supporting Member
Australia

ASF is offline
 
Join Date: Jun 2012
Location: Australia
Posts: 2,542
Why do you need the CPS to be in the safety task?
  Reply With Quote
Old May 15th, 2018, 05:52 PM   #3
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
I have 2 processors and am transferring UDTs between them.

for my standard tags I do the following:

1) Send the information from Processor 1 to Processor 2 using Produced/Consumed tags.

2) In the consuming processor I map the consumed tag to a base tag. using CPS

3) if the connection faults then "Zero" the Base tag. "Zeroing" could literally be setting tags to zero or setting them to some other value that is the "fail safe" value.

I want to do the same thing in my safety task for my safety tags.
  Reply With Quote
Old May 15th, 2018, 06:43 PM   #4
ASF
Lifetime Supporting Member
Australia

ASF is offline
 
Join Date: Jun 2012
Location: Australia
Posts: 2,542
I'm not sure that's the "correct" approach to take with safety data, which is potentially why it's not allowed. You shouldn't be externally "zeroing" the safety tags if the connection faults - that should be done by the safety instructions.

Take the example of a DCS (Dual Channel Input Stop) instruction, using a physical safety input. You enter your input tags directly into the DCS instruction, and then enter a tag for Input Status, which should include:
- Connection to safety input module not faulted
- Safety input module in run mode
- Safety input channel A point status OK
- Safety input channel B point status OK

If any of these fail, the DCS instruction itself faults.

You'd do the same thing with safety data from another GuardLogix, only you don't have to worry about the last two points in the list for Input Status, only that the remote GuardLogix is online and in run mode
  Reply With Quote
Old May 15th, 2018, 07:03 PM   #5
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
I agree with your thoughts, I think it’s the preferred method to handle it in the instructions.

Our logic uses the connection status directly so if the connection faults or isn’t in run mode then we would drop automatic mode and inhibit movement.

The data getting sent over or old data wouldn’t matter because the process that uses it would stop and not read it. So zeroing it out wouldn’t be an issue.

The reason we are doing the zero out is that it’s a customer request.
The template they gave shows how to do it for standard tags (using CPS).

They asked us to do it for ALL tags including safety tags. But no method was provided in the template showing how to do safety tags.

I could do it using the regular copy [COP] instruction but then the copy wouldn’t be synchronous and could introduce other problems.

Will have to ask the customer what they expect, I just wanted to check that I wasn’t missing something obvious before talking to them.

Thanks for your input
  Reply With Quote
Old May 16th, 2018, 04:39 AM   #6
rdrast
Lifetime Supporting Member
United States

rdrast is offline
 
rdrast's Avatar
 
Join Date: Apr 2003
Location: South Carolina Lowcountry
Posts: 5,168
Map the Safety tags to standard tags with the Logic | Safety Tag Mapping option, then do you messaging with the standard tags.

Of course, this potentially violates safety issues, but if you are only using it for monitoring...
__________________
------------------------------------
How to ask questions the SMART Way!

Look First, Ask Second!

  Reply With Quote
Old May 16th, 2018, 03:45 PM   #7
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
Quote:
Originally Posted by rdrast View Post
Map the Safety tags to standard tags with the Logic | Safety Tag Mapping option, then do you messaging with the standard tags.

Of course, this potentially violates safety issues, but if you are only using it for monitoring...
Unfortunately its not just monitoring so I cant do it that way because the tags are used in the safety task for safety related things. otherwise its a good idea.
  Reply With Quote
Old May 16th, 2018, 06:01 PM   #8
ASF
Lifetime Supporting Member
Australia

ASF is offline
 
Join Date: Jun 2012
Location: Australia
Posts: 2,542
Quote:
Originally Posted by GhostPepper View Post
Our logic uses the connection status directly so if the connection faults or isn’t in run mode then we would drop automatic mode and inhibit movement.
WARNING - if that logic isn't done in the safety task, it is not a safety function and is not considered to give any protection.

Sure, it's good practice and a good idea to do regardless. But if you're not also monitoring the comms in the safety routine in a safety certified way, and dropping out safety outputs, your safety PLC is not safe.

Quote:
Originally Posted by GhostPepper View Post
The reason we are doing the zero out is that it’s a customer request...Will have to ask the customer what they expect, I just wanted to check that I wasn’t missing something obvious before talking to them.
That's the best thing to do, for sure.
  Reply With Quote
Old May 17th, 2018, 04:29 PM   #9
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
All set

looks like there is no magic fix, CPS just isn't part of the safety task and there is no substitute.


Customer wants us to use COP instruction if synchronization isn't an issue or to just not do the zero out if it would be unsafe to do so.

To me that's the most reasonable thing to do, We will evaluate and decide if its best to just leave it as is.

Yes ASF the motion inhibit Safe torque off is all done in the safety task, the dropping auto is just an extra.


Guess the only question left is the technical reason CPS isn't certified for safety? do wonder about it but I'm done with the issue for now.


Thanks for your help
  Reply With Quote
Old May 17th, 2018, 05:46 PM   #10
ASF
Lifetime Supporting Member
Australia

ASF is offline
 
Join Date: Jun 2012
Location: Australia
Posts: 2,542
Sounds like a good outcome all round!


If I had to guess about why it's not certified, I'd say that it's probably too open to abuse. A CPS has a huge processor overhead when compared to a COP, and safety tasks are time critical. Total guesswork, but that's where my money would be.
  Reply With Quote
Old May 20th, 2018, 01:39 AM   #11
Timbert
Member
United States

Timbert is offline
 
Timbert's Avatar
 
Join Date: May 2011
Location: The middle of the Pacific Ocean
Posts: 359
Quote:
Originally Posted by GhostPepper View Post
I always use the Synchronous Copy [CPS] instruction to copy my consumed tags because potentially they could change partway through the copy and end up with part of the data from one instant in time and the other part from a later time. I have had good results with this method.

I’m now working on a consumed tag that’s used in a safety task and can’t get the CPS instruction to work.

It looks like the CPS instruction isn’t available in the menu and if I paste it in I get the following error:
“CPS: Instruction not certified for use in Safety routines”

Why wouldn’t the CPS instruction be certified for safety?
I think it is because it is unneeded.

According to the GuardLogix User Manual, 1756-RM020:
  • All safety input tags (inputs, consumed, and mapped) are updated and frozen at the beginning of safety task execution.
  • Safety output tag (output and produced) values are updated at the conclusion of safety task execution.

The way this was explained to me is that all the data in the safety task is essentially a CPS at the beginning of the task to a buffer, logic is executed on that unchanging data, then written out of the buffer in another CPS-like function.

There should be nothing to be gained by using CPS within the safety task as it can not change until the end of the task completes by its very nature.
__________________
An expert is a man who has made all the mistakes which can be made in a very narrow field. --Niels Bohr as quoted by Edward Teller
  Reply With Quote
Old May 20th, 2018, 12:32 PM   #12
pal
Member
United Kingdom

pal is offline
 
Join Date: Apr 2011
Location: Tilbury
Posts: 174
Timbert - perhaps youv'e answered the question . When the CPS instruction is processed maybe it unfreezes the data BEFORE THE END OF THE SCAN !
Paul
  Reply With Quote
Old May 20th, 2018, 05:32 PM   #13
ASF
Lifetime Supporting Member
Australia

ASF is offline
 
Join Date: Jun 2012
Location: Australia
Posts: 2,542
Quote:
Originally Posted by Timbert View Post
I think it is because it is unneeded.

According to the GuardLogix User Manual, 1756-RM020:
  • All safety input tags (inputs, consumed, and mapped) are updated and frozen at the beginning of safety task execution.
  • Safety output tag (output and produced) values are updated at the conclusion of safety task execution.
That makes a whole lot of sense! I've learned my new thing for the day!
  Reply With Quote
Old May 22nd, 2018, 05:07 PM   #14
GhostPepper
Member
Canada

GhostPepper is offline
 
Join Date: Mar 2018
Location: Ontario
Posts: 14
Quote:
Originally Posted by Timbert View Post
I think it is because it is unneeded.

According to the GuardLogix User Manual, 1756-RM020:
  • All safety input tags (inputs, consumed, and mapped) are updated and frozen at the beginning of safety task execution.
  • Safety output tag (output and produced) values are updated at the conclusion of safety task execution.

The way this was explained to me is that all the data in the safety task is essentially a CPS at the beginning of the task to a buffer, logic is executed on that unchanging data, then written out of the buffer in another CPS-like function.

There should be nothing to be gained by using CPS within the safety task as it can not change until the end of the task completes by its very nature.


THAT explains it, Thank you Timbert.
  Reply With Quote
Old May 23rd, 2018, 07:02 PM   #15
daba
Lifetime Supporting Member + Moderator
United Kingdom

daba is offline
 
daba's Avatar
 
Join Date: Jul 2004
Location: uk
Posts: 4,297
Quote:
Originally Posted by ASF View Post
.... A CPS has a huge processor overhead when compared to a COP, ...

I don't consider the added functions of disabling interrupts, then re-enabling them bracketing essentially a COP to be "huge".


That is all CPS does over a COP, prevents the instruction being interrupted by anything, even the system overhead time-slice.
__________________
___________________________
ControlLogix & SLC Training
a-b train ltd.
abtrain@tiscali.co.uk
www.abtrain.co.uk
tel: 07506 73 9999
nil illegitimi carborundem


  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
CPS instruction question hazemabdulrab LIVE PLC Questions And Answers 2 October 19th, 2014 04:48 PM
How to verify the CPS instruction in RSlogix 5000 (Controllogix PLC) sidhu LIVE PLC Questions And Answers 1 August 12th, 2014 03:18 AM
How to use a CPS instruction in CompactLogix nightline LIVE PLC Questions And Answers 9 April 7th, 2011 12:59 AM
Status Point Energize (STE) – An Easier Way to Keep Track of Process Status RichardE LIVE PLC Questions And Answers 16 October 29th, 2010 06:52 PM
Questions abt Siemens S7 200 Preeya LIVE PLC Questions And Answers 3 April 9th, 2007 07:39 AM


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


.