PPS NIU Comm
PPS NIU Comm
This purpose of this Tech Note is to provide a crude example of setting up Ethernet
Global Data (EGD) communications between a PPS (PACSystems) controller and an
RX3i Ethernet Network Interface Unit (NIU) via the EGD Configuration Server.
Some information regarding setting up Point Fault References for the NIU’s discrete,
hardwired inputs will also be covered. The Point Fault data will be passed to the EGD
Configuration Server in order for a PPS System’s SCADA to determine the remote
point’s quality, for use with a user created Faceplate/Dynamo. Only a single
controller, single NIU and LAN configuration will be covered.
Using the EGD Configuration server is not a requirement when setting up EGD
communications from the NIU to the PLC, however, since the Point Quality data being
sent from the NIU (explained later in the document) to the SCADA node(s) has to be
passed through the server in order to be resolved, all of the NIU’s exchanges will go
through the config server.
Scope:
The information covered will be brief and is intended for users with a familiarity of
both PPS’s Logic Developer (Machine Edition Software), PACSystems controller’s
including the Ethernet NIU and Ethernet Global Data. The logic indicating the discrete
point quality in the NIU is crude and is meant as an example only.
For more detailed info, please refer to the relevant product manuals.
http://support.gefanuc.com/support/index?_a1=2&cat=DEVAPPLIED_SOLUTIONS_TYP
ES&actl=DEVAPPLIED_SOLUTIONS_TYPES&lclicked=&comp=&compSel=&dProdFam=C
ONTROLLERSIO&dProd=&dProdVer=&locale=en_US&page=dwchannel&filterSub=Filte
r
The NIU uses EGD as its communications protocol to exchange data/status with the
Controller(s), so exchanges need to be configured. For more information regarding
the exchange definitions etc. please refer to GFK-2439 PACSystems RX3i Ethernet NIU
manual (revision C is the latest as of the creation of this document)
A new Produced Exchange is created. This exchange will send data from the PLC to
the NIU to control the NIU’s digital and analog outputs. Control data is also sent to
the NIU configuring the way in which it operates. Please refer to the NIU manual for
more detailed information:
Four variables are created. The first variable is required for the exchange status word.
This variable allows for monitoring of the health of the exchange and contains error
codes that can be used when troubleshooting.
(Note: the status variables are not sent as part of the exchange and are not required
in the consumer. A Symbolic variable is being utilized, however, a “reference based”
variable could also be used)
The second variable that is to be
created is an array of 10 Words used
to pass the control data to the NIU (for
more info regarding the control word
and its use, please refer to the GFK-
2439:
The third and fourth variables are used to pass the controller data to control the NIU’s
discrete and analog outputs. In this example, 64 discrete values and 32 analog values
are being sent from the PLC to the NIU to control the NIU’s first 64 and 32 digital and
analog points respectively (%Q1-64, %AQ1-32).
(The reference address for the discrete outputs going from the PLC to the NIU, %Q1-
64, can be any address and can also be a Symbolic variable. %Q1 length 64 is used
for this example.
(The reference address for the Analog outputs going from the PLC to the NIU, %AQ1-
32, can be any address and can also be a Symbolic variable. We will use %AQ1 length
32 for this example)
Now that the variables have been defined, they are added to the Produced exchange:
A status location is created by default and this range is replaced with the status
variable that was created. By double clicking the “Variable” heading, the status
variable can be selected from the smart list:
Three new ranges are added to the exchange, one for the control data, one for the
discrete data and one for the analog data:
It is important to note that since the EGD configuration server is being used, all of the
variables that are being produced are required to be in the consumer’s exchange
definitions. This means that all of the variables that were just created (except for the
exchange status word) have to be replicated in the consumer’s (NIU) consumed
exchange. This will be covered later in the document.
Now a new manual consumed exchange is added to the controller. This exchange
will read in the discrete and analog input data from the NIU as well as the NIU’s
status data.
The EGD config server is being used in order to pass the Point Fault data to be setup
later in the document to the SCADA without being consumed by the PLC.
The Consumed ranges are now setup. Since the config server is being used the
variables being consumed have to match the ones being produced. When the PLC’s
produced exchange was setup the following variables were being sent:
The Exchange Status word for the NIU’s consumed exchange can be omitted from
the variable creation.
The same variables are setup for the NIU Target, using the predefined reference
addresses (the ref’s are required in the NIU):
The ranges highlighted require matched variables to the ones being produced:
Matched variable defined in the both the PLC’s Produced exchange and the NIU’s
Consumed exchange.
Matched variable defined in the both the PLC’s Produced exchange and the NIU’s
Consumed exchange.
Matched variable defined in the both the PLC’s Produced exchange and the NIU’s
Consumed exchange.
The ranges are added to the NIU consumed exchange and the vars are added to the
exchange:
The same variable creation to match the variables in the controller is now done for
the NIU’s Produced Exchange. The PLC’s consumed exchange range definition was:
The ranges outlined in red require that matching variables be created for the
following reference address assignments:
(Note: the Status Word data is required to be located at %R01101 length 10)
Matched variables defined in the both the PLC’s Consumed exchange and the NIU’s
Produced exchange.
The NIU is now set as the “Active” Target and a “Bind and Build” of the NIU’s EGD is
performed:
An online connection is made to the NIU:
Now that both projects including the EGD configurations have been downloaded to
both devices, the exchange status words will be examined to ensure that the data is
being passed correctly.
From the watch list we can see that both of the exchange status word variables
indicate a value of 1. Looking in the PACSystems ETM manual:
No errors are being seen at the PLC. For more information regarding the different
Status word values and their meanings, please refer to GFK-2224H.
The same status verification is now done at the NIU. Looking at the exchanges we
can see that the status words are set for the following reference addresses:
For the NIU’s second Produced exchange (Point Quality info being passed to the
Config Server)
The three reference ranges are added to a Reference View Table to verify their
current values:
Now the data being passed is verified. For the NIU’s Produced Exchange, the
following ranges were being passed to the PLC:
%I00001-65
%AI0001- 33
Looking in the RVT at the NIU the following values are seen:
The same data is to be consumed at the PLC into the following variables:
By placing these variables in a watch list we can see that the data is being consumed
correctly:
The PLC is producing the following ranges:
By adding the ranges above to an RVT for the NIU the same data is seen:
This data is also mapped on to the NIU’s outputs via the NIU’s logic blocks. For more
information regarding the mapping, please refer to GFK-2439C:
Point Faults:
Point Faults are defined in GFK-222M Instruction Set Reference manual for
PACSystems CPU’s as follows:
Point faults pertain to external I/O faults, although they are also set due to the failure
of associated higher-level internal hardware (for example, IOC failure or loss of a
rack). To use point faults, they must be enabled in Hardware Configuration on the
Memory parameters tab of the CPU.
When enabled, a bit for each discrete I/O point and a byte for each analog I/O
channel are allocated in PLC memory. The PLC memory used for point faults is
included in the total reference table memory size. The FAULT and NOFLT contacts
described in “Using Fault Contacts” on page 14-11 provide access to the point faults.
The full support of point fault contacts depends on the capability of the I/O module.
Some Series 90-30 modules do not support point fault contacts. The point fault
contacts for these modules remain all off, unless a Loss of I/O Module occurs, in
which case the RX3i CPU turns on all point fault contacts associated with the lost
module.
As the PPS DI and AI blocks only support locally hardwired inputs (PLC Rack based) if a
user defined faceplate is to be created, a method to send the point quality to SCADA
from the NIU’s hardwired inputs would be to use point faults.
Once the point faults have been configured, FLT and NOFLT contacts can be used to
indicate point quality. Some crude sample logic can be setup using these contacts to
monitor the quality:
The contacts and associated coils are set depending on whether a fault has been
detected or not, for the defined reference addresses.
In order for the EGD OPC Server to resolve the coil data indicating quality, the
symbolic variables, dig_good_qual and dig_bad_qual, require that their “Publish”
property be set to “External”:
(Note: For this example the discrete input data being passed to the PLC and Config
Server (discrete_data_from_NIU) will also be published externally for viewing at the
SCADA nodes)
Testing the Point Faults:
With no faults logged against the Input simulator (%I1-16) the No Fault contacts are
set and the coils indicating “Good” quality are set:
Once a Fault is logged against the points or module, such as a loss of module fault,
the Fault contacts are set and the coils indicating “Bad” quality are set:
Indicating Point Quality:
As mentioned earlier in the document, the PPS AI and DI blocks are supported for
local, hardwired rack based I/O. A crude method to indicate the remote I/O quality is
to use the Fault and No Fault contacts to drive coils. This coil data can then be used
to indicate quality.
A new produced exchange is added to the NIU to pass the coil data indicating either
good or bad quality of the digital points to SCADA for display:
The coil data is added to exchange:
The new exchange definition is downloaded to the NIU and the NIU is placed into to
Run/Enabled mode.
Once the exchange is in the Server, the SCADA will be able to add the points. For this
example iFIX 4.5 will be used.
IFIX is started:
For this example only crude objects will be used for indication as to the value and
quality of the point data. For more complex object, including Dynamo/Faceplate
creation, please refer to the relevant help files.
This table will be used to animate objects used to indicate whether the NIU’s discrete
inputs (for the input simulator %I1-16) are on or off.
To access a bit in the array the brackets are used resulting in the following for the
first input:
'EGD.NIU.discrete_data_from_NIU[0]'
The oval is copied and the source is changed to the second input:
Two Text boxes are dropped on the picture. One says “Good Quality” the other says
“Bad Quality”.
The text boxes will be placed on top of one another and a visibility animation will be
used to display the correct quality based off of the coil data being produced from the
NIU:
The data source is set to display the text “Good Quality” when the variable source is
equal to 1:
The same is done for the other text box, indicating ‘Bad Quality:
Both boxes are copied and the data source is changed for the second inputs quality
coils that were setup:
Now there are two objects being used to indicate whether the point’s are on (green)
or off (red) and an indication of the point quality for each:
When connected to the NIU we can see that input 1 (%I00001) is on and is indicating
good quality (no point fault set) and Input 2 (%I00002) is off and indicates good
quality:
When the Workspace is put into Run mode, the correct info is seen:
If the input simulator is lost (Faulted) the point faults are set:
The correct indications are also seen at the SCADA: