13 Forcing Lab
13 Forcing Lab
Duration
20 Minutes
Prerequisites
The following prerequisite knowledge is recommended in order to complete this lab:
• Level 1: Logix On Demand
Materials
This lab requires the following items. See the General Setup for more details.
☐ Hardware:
☐ PC-based programming workstation with access to the RAcbi learning
environment
☐ Software:
☐ Studio 5000 Logix Designer version 32
☐ Files:
☐ Forcing_Start_File.ACD
Force Tags
Scenario
You have been provided with a file, controller, and I/O for testing. The I/O is not wired to any
physical devices at this time. In this section of the lab, you will use forces to manually write
values to that I/O for testing purposes.
Practice
It’s your turn to try it:
1. Open the starting file for this lab:
a. Use the shortcut on the desktop of your instance of the RAcbi learning
environment to open the LabFiles.
b. Open the Forcing_Start_File.ACD project.
Because we are testing our logic’s response to signals from the physical I/O modules, we will
need to be online with the controller. So, we begin by downloading to our controller and
remaining online with that controller once the download is complete.
2. In the top ribbon menu, expand Communications and select Who Active.
3. Expand the EtherNet driver, download to the 1756-L85E controller, and place the
controller into the Remote Run mode:
5. Go to the Monitor Tags tab and expand the Local:3:I hardware tag structure as shown
below:
Currently, because there is nothing wired to point zero of this 1756- IB16IF input module, the
value is 0. We would like to change this value to 1 for testing purposes.
6. Manually type 1 into the Value for Local:3:I.Pt[0].Data and press Enter on your keyboard.
Notice that the value immediately changes back to 0. This is because the digital input module
updates the input value based upon the requested packet interval (RPI) and the status of the
physical input. Since there is no input signal indicating a true or on state at the physical wiring
terminal, the module will continue to write a value of 0 to the tag member. So, the only way to
manually set this value to 1 is by overriding the input module using the forcing feature.
To force a tag or tag member, we write the desired force value into the forcing mask. Then we
apply the force, and the mask value will be written to the tag or tag member actual value.
7. To set the Force Mask to 1, right-click on the box to the left of Local:3:I.Pt[0].Data and
select Force On:
8. Verify that the Force Mask value for Local:3:I.Pt[0].Data has indeed changed to 1 and
that the Value for the tag member is purple, indicating a force is present, but not yet
enabled:
Now that the desired forcing value is set, let’s enable the force.
9. Within the Online toolbar, expand Forces and I/O Forcing, and then select Enable All I/O
Forces:
Because of the hazards associated with forcing I/O, we are prompted to confirm our
actions. In this example, because there is nothing wired to ANY of our I/O, and our logic,
therefore, has little ability to affect the physical world, we can safely enable the force. This
will not always be the case. So, each time we enable forces, we must thoroughly assess
the potential risks associated with doing so.
Furthermore, in this example, we are enabling all forces simultaneously. Therefore, we
must assess the risks associated with ALL forces currently within our project, because they
will all take effect immediately. In this case, we have but a single force.
Be aware that, even though we have no I/O wired to our system, we could potentially have
other devices controlled by our controller that may be wired and capable of action, such as
a motion drive and axis. If we force our I/O, and that forced value triggers one of these
devices in our logic, we could cause hazardous conditions, such as the motion of an axis.
So, as the complexity of our control system increases, so too does the complexity of our
risk analysis.
11. Verify that the force is now active, as indicated by the tag member value being amber in
color, as well as by the amber Play symbols:
At this point, it is critical that we understand that, whenever we see this color coding and
symbology, the value of the relevant tag no longer represents a signal from a physical
device, but, rather, a manually entered forcing value.
Now let’s see how to remove the force. This can be accomplished on an individual basis,
or we can remove all forces simultaneously. Let’s try the latter.
12. Within the Online toolbar, expand Forces and I/O Forcing, and then select Remove All
I/O Forces:
There are potential consequences for not only enabling I/O forces, but for disabling them
as well. That is, we need to know what is going to happen with our physical system when it
returns from the forced value to the physical signal value, and we need to verify that this
change poses no hazardous risk to personnel or damage to our plant. In this example,
because we are removing all forces, we need to make this assessment for any forces that
are in the controller. So, again, we are prompted to confirm our actions.
So, we have seen how easy it is to force a Boolean tag. However, we can also force other tag
values, such as an analog input channel. Let’s try that out now.
14. Still within the Monitor Tags tab of the Controller Tags, expand the Local:5:I tag
structure as shown below:
In this case, if we were to right-click on the Data member as we did with the Boolean tag, we
would find that the Logix Designer application does not provide the options for forcing the tag on
or off, for obvious reasons. So, instead, we simply need to enter the desired value directly into
the forcing mask.
15. Type 50 into the Force Mask cell of the Local:5:I.Ch[0].Data tag member and press Enter
on your keyboard:
As with our previous, Boolean force, we see that the actual Value of the analog channel
turns purple, indicating that a force is present, but not yet enabled.
16. Within the Online toolbar, expand Forces and I/O Forcing, and then select Enable All I/O
Forces:
As with our Boolean force, we need to verify that what we are doing is safe. In this
example, it is, so we can go ahead and confirm our action.
18. Verify that the force is now active, as indicated by the tag member value being amber in
color, as well as by the amber Play symbols:
So, once again, our tag value no longer represents a signal from a physical field device,
but, rather, a manually entered forcing value.
Of course, the value within the tag editor also takes effect anywhere the tag is used within
our logic. Let’s take a look at that now.
19. From within the Controller Organizer, open the MainRoutine of the MainProgram
located within the MainTask:
20. Verify that the forced value is indeed being applied to the simple logic, and is indicated by
the value’s amber color:
As we can see, forcing is extremely useful when we need to test the behavior of our logic in the
absence of physical hardware.
Previously, we removed all forces within our project simultaneously. This time, let’s see how to
remove an individual force.
21. Back within the Monitor Tags tab of the Controller Tags, right click the Local:5:I
hardware tag structure and select Remove Force:
Now we have removed only the forces that were contained within this particular tag
structure. However, although the project does not contain any other forces, forces ARE still
enabled, and we should disable them before going offline. Otherwise, another user might
add a force later and, because forces are enabled, it will take effect immediately.
22. Within the Online toolbar, expand No Forces and I/O Forcing, and then select Disable All
I/O Forces:
23. If prompted, click the Yes button to confirm the disabling of forces.
24. Take your project offline.
25. Close your project.