GSV and SSV

nur11

Member
Join Date
May 2018
Location
Texas
Posts
9
Hello dear forum users,
I have a system consisting of:
RSLogix5000 v20.04 software
Hardware Emulator v16-21
Executed on a VM Virtual Box virtual machine.
After reading the manual, I realized that in order to pick up the system registers, I must use the GVS and SSV instructions.
Minor errors were successfully displayed, but major errors could not be initialized.
For example, it is necessary to display a program execution error or loss of communication with I / O modules with subsequent binding to a DO channel.
What am I doing wrong?
Sorry for my English

minor 1.JPG minor 2.JPG minor 3.JPG major 1.JPG major 2.JPG
 
I completed the task of initiating the major program error and attached it to the DO channel
look at the link
prog_fault-prog_fault2
I can not initiate a major error loss of i / o modules
look at the link
module_fault1-module_fault2
What am I doing wrong?
sorry for my English

prog_fault.JPG prog_fault_2.JPG module fault 1.JPG module fault 2.JPG
 
Last edited:
In the Fault Handler the Fault Module routine needs to be changed to a Main routine.

The Fault Handler does not require a Fault routine. Only a Main routine is needed here. The Fault Handler executes automatically when there is a controller fault due to loss of communications with a required I/O module.

If there is also a Program Fault routine (Fault_1 in your example) then the Program Fault routine would execute if the fault occurred within that program. If that routine fails to clear the fault, then the Fault Handler would execute. In this way, each program could be setup with a unique fault routine with the Fault Handler managing any faults not addressed by the unique program fault routines.

A failed "required" I/O module would not be considered a Program fault so the Program fault routine would not execute. Instead, the Fault Handler would execute.

EDIT #1: OK, there is a lot going on here....

In the Controller Fault Handler, the timer isn't going to work. Timing should never be done in a fault routine/handler. The scan does not sit on rung #0 and wait for the timer to finish before moving to rung #1. It starts the timer and then moves on.

When the fault occurs, it jumps to the handler, starts the timer and then moves to the next rung, the timer isn't done yet, so the GSV does not execute. Then it reaches the END and faults the system. There is no SSV here to clear the fault.

In your Program Fault Routine, I would guess that the CPU_SCANNING is preventing the SSV from executing. I would remove that so you only have the CLR and the SSV.

EDIT #2:

Personally, I do three things in a fault routine.
  1. Turn on an internal bit.
  2. Capture the fault information
  3. Clear the fault

Turn on an internal bit. I simply have an OTE on a rung by itself with a unique tag name assigned to it. No inputs ahead of it. I can use that bit in my normal logic to turn on an output (horn/light). I can have my HMI monitor it to identify if there has been a fault. I never turn on an actual output within my fault routines.

Capture the fault information. Pretty straightforward. Use the GSV to capture this data. Like your example I might call this Fault_Log or Program_Fault. I now have the fault type and code captured.

Clear the fault. I do this with the SSV a little differently than how Rockwell suggests. I create a new tag for the SSV. I might call this Program_Fault_Clear. The default value in all data fields would be 0, so the CLR isn't necessary. When the SSV executes it sends all zeroes clearing the fault. But I still have my fault information captured from the GSV.

OG
 
Last edited:
Can I know the status of the PLC status?
Using controllerdevice instructions
status bits are not updated

STATUS PLC 1.JPG STATUS PLC 2.JPG STATUS PLC 3.JPG STATUS PLC 4.jpg STATUS PLC 5.jpg
 
The routine you are showing us is a subroutine. Have you programmed a JSR, and is the rung with the JSR true? Fault routines will execute automatically without the need for a JSR. Subroutines like this require a JSR.

Just be aware the status cannot update when the controller is in Program or if the controller has faulted. The controller is not executing logic in those instances so it cannot report that status.

I never bother with bits 4-7. I do sometimes use bits 12 and 13 to know the position of the key switch. It can tell me if it is in Run or Remote. It cannot tell me it is in Program though (see statement above).

OG
 

Similar Topics

Hello Guys; I am new here. Also, New to the PLC so I took some college courses and also learning by myself. I came across GSV/SSV instructions...
Replies
2
Views
1,604
In a ControlLogix/CompactLogix when using a GSV instruction, all of the objects are referenced by name as well as the attribute. When using a MSG...
Replies
1
Views
6,859
My CompactLogix 1769-L32E has a minor fault: The GSV/SSV destination tag was too small to hold all of the data. How to fix the destination so it...
Replies
0
Views
1,592
Hi, I have a controllogix 1756-62 and it always popup a minor fault as attachement picture the gsv/ssv invalind operand only show when executing...
Replies
1
Views
1,724
All I am studying a PLC program from another facility. It uses an SSV instruction and a GSV. Data in SSV, GSV as follows...
Replies
4
Views
7,333
Back
Top Bottom