Hi guys,
I have a device i want to stop by sending a DO under differents conditions, like when a collision occur, an e-stop is pressed or a DCS fault is detected
I been able to send an output when a e-stop is pressed in menu-->system-->config.
i also set an output for the collision detect in setup--coll guard menu but i can't use the same output as the one i use for e-stop.
It doesn't really matter, i could use differents signal to stop my device but i didn't find a way to send a DO when a DCS fault occur.
Send DO when differents fault occur
-
Gariep -
February 14, 2014 at 10:15 PM -
Thread is Resolved
-
-
You can map many of the Emergency Stop signals via the I/O Interconnect setup ES -> DO screen. I'm not sure if this includes DCS faults as a unique item though.
-
Fanuc has an option for you: Error Code Output.
Call them and find the price. -
Is there a way to send a DO when the fence is open without this option?
-
If you have DCS and safety IO connect, you can try mapping the DO to SSI[2] and reverse the polarity.
-
I didn't had the chance to test on real robot but i should be ok for the fence signal with any of both solution you guys gave me.
The only thing for wich i didn't be able to send a DO yet is the DCS alarm.
If i could do it withough this option i'll be happy.
Any idea?
Thank you
-
I use a digital output that is configured as a user output as well. DO6 will be on if the controller is faulted. With some BG logic I turn on another output when the robot is faulted.
3: IF (DO[6:UOP - Robot Fault]=ON),DO[512]=(ON) ;
-
Monitor the safety variable. You can use the Group Output to run the bitwise operation for you, and map the result to a flag. Or external digital outputs.
If you have a recent enough controller, then you should have access to flags. Flags are internal Boolean logic, they function like I/O, but no field devices access them. $MIX_LOGIC.$use_flg must be set to TRUE for the flags to be displayed. Flags are mapped like any other I/O in logic.
Flags are on Rack 34 Slot 1. If you want to push it to a output, you can just map an output either to the flag itself, or you can use I/O Interconnect, or write a BG program to set them equal to each other.
BG Logic EX.
: DO[Fence]=F[4:Fence] ;Map to DO[i].
Range [i] - [i+10] Rack 34 Slot 1 Start 1see attatched picture.
Category: Variables
This variable can be set to a register in logic and have bitwise operations performed to determine the cause of safety faults.
1 = E-stop on controller.
2 = E-stop on Teach pendent
3 = Deadman Trigger on Teach pendent
4 = Fence circuit
5 = Robot Overtravel
6 = Hand Broken
7 = External E-stop
8 = Pressure Abnormal
9 = Belt Broken
10 = Teach Pendent Enabled
11 = Fault Alarm
$MOR.$safety_stat
Minimum: Not available Maximum: Not available Default: Not available KCL/Data: Not available Program: RO UIF: Not available CRTL: Not available Data Type: INTEGER_SK Memory: Not available
Name: Safety signals status
Description: $MOR.$safety_stat is bit parameter of safety signals. The bit assignments are as follows. * Bit position for $safety_stat MFS_EMGOP 1 MFS_EMGTP 2 MFS_DEADMAN 4 MFS_FENCE 8 MFS_ROT 16 MFS_HBK 32 MFS_EMGEX 64 MFS_PPABN 128 MFS_BELTBREAK 256 MFS_ENABLE 512 MFS_FALM 1024 When FLTR task detects the above alarms, FLTR set the bit which corresponds to the alarm.
Power Up: At a cold start, this variable is reset to its default. -
Monitor the safety variable. You can use the Group Output to run the bitwise operation for you, and map the result to a flag. Or external digital outputs.If you have a recent enough controller, then you should have access to flags. Flags are internal Boolean logic, they function like I/O, but no field devices access them. $MIX_LOGIC.$use_flg must be set to TRUE for the flags to be displayed. Flags are mapped like any other I/O in logic.
Flags are on Rack 34 Slot 1. If you want to push it to a output, you can just map an output either to the flag itself, or you can use I/O Interconnect, or write a BG program to set them equal to each other.
BG Logic EX.
: DO[Fence]=F[4:Fence] ;Map to DO[i].
Range [i] - [i+10] Rack 34 Slot 1 Start 1see attatched picture.
Category: Variables
This variable can be set to a register in logic and have bitwise operations performed to determine the cause of safety faults.
1 = E-stop on controller.
2 = E-stop on Teach pendent
3 = Deadman Trigger on Teach pendent
4 = Fence circuit
5 = Robot Overtravel
6 = Hand Broken
7 = External E-stop
8 = Pressure Abnormal
9 = Belt Broken
10 = Teach Pendent Enabled
11 = Fault Alarm
$MOR.$safety_stat
Minimum: Not available Maximum: Not available Default: Not available KCL/Data: Not available Program: RO UIF: Not available CRTL: Not available Data Type: INTEGER_SK Memory: Not available
Name: Safety signals status
Description: $MOR.$safety_stat is bit parameter of safety signals. The bit assignments are as follows. * Bit position for $safety_stat MFS_EMGOP 1 MFS_EMGTP 2 MFS_DEADMAN 4 MFS_FENCE 8 MFS_ROT 16 MFS_HBK 32 MFS_EMGEX 64 MFS_PPABN 128 MFS_BELTBREAK 256 MFS_ENABLE 512 MFS_FALM 1024 When FLTR task detects the above alarms, FLTR set the bit which corresponds to the alarm.
Power Up: At a cold start, this variable is reset to its default.The setup in the screen shot is very smart. I will keep it and use is in the future.
-
Hi, maybe I'm making a stupid question and I apologize how do I create that instruction with the $MOR.$safety_stat in the register?
-
Hi, maybe I'm making a stupid question and I apologize how do I create that instruction with the $MOR.$safety_stat in the register?
When inside the TP editor:
F1 "Instructions" -> 1 "Registers" -> 8 "...=(...)" -> 2 "R[ ]"
***Enter your desired index for the register to use and hit ENTER***
Then look for the mixed logic instruction called "Parameter name" and then you need to write the parameter name manually.The first $-sign is already there, but subsequent $-signs as well as periods (".") must be entered.
Take good care not to misspell. -
Thank you gpunkt already done thanks alot!!