Purpose - General Electric

52
Purpose: 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. Creating the Project: For this example a new “empty” project is created:

Transcript of Purpose - General Electric

Page 1: Purpose - General Electric

Purpose: 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. Creating the Project: For this example a new “empty” project is created:

Page 2: Purpose - General Electric

Note: There are a number of predefined Templates available for PPS and ENIU’s, available for download at: http://support.gefanuc.com/support/index?_a1=2&cat=DEVAPPLIED_SOLUTIONS_TYPES&actl=DEVAPPLIED_SOLUTIONS_TYPES&lclicked=&comp=&compSel=&dProdFam=CONTROLLERSIO&dProd=&dProdVer=&locale=en_US&page=dwchannel&filterSub=Filter (A PPS/NIU Template will not be used in this example) A PPS RX3i Controller Target is added to the project:

Page 3: Purpose - General Electric

An IC695ETM001 is added (RX3i Ethernet Interface) to the rack configuration:

Page 4: Purpose - General Electric

The ETM’s network parameters are configured:

The Controller’s EGD Settings are configured:

Page 5: Purpose - General Electric

In this example, a single Ethernet LAN is being used and the Local Producer ID used is the IP address of the ETM. For more information regarding these parameters and Ethernet Global Data, please refer to GFK-2224 TCP/IP Communications for PACSystems manual (revision F is the latest as of the creation of this document) as well as the PPS EWS help files. Setting up the Controller’s EGD: 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)

Page 6: Purpose - General Electric

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:

The exchange properties are defined:

Page 7: Purpose - General Electric

The ranges are now setup for the PLC’s produced exchange. Since a PPS System uses the EGD Configuration Server, variables are required to pass the data to the NIU. 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)

Page 8: Purpose - General Electric

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.

Page 9: Purpose - General Electric

(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:

Page 10: Purpose - General Electric

Three new ranges are added to the exchange, one for the control data, one for the discrete data and one for the analog data:

The Control data is added to the 1st new range:

Page 11: Purpose - General Electric

The discrete data is added to the 2nd new range:

The analog data is added to the 3rd new range:

Page 12: Purpose - General Electric

Note: The length of the exchange has to match the length of the consumed exchange in the NIU, with the same group and exchange ID’s. 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 new consumed exchange’s properties are setup:

Page 13: Purpose - General Electric

The “Local Producer ID” is the IP address of the NIU.

Page 14: Purpose - General Electric

Four variables are created for the Consumed exchange. The exchange’s status word:

The NIU’s Status data (10 word array):

Page 15: Purpose - General Electric

The NIU’s discrete input data (64 Bits in this example): (%I00001 length 64 is used but any reference address could be used to consume the data. A Symbolic Boolean array length 64 could also be used) The NIU’s discrete input data (32 Words in this example): (%AI0001 length 32 is used but any reference address could be used to consume the data. A Symbolic Word array length 32 could also be used)

Page 16: Purpose - General Electric

The ranges are added and the variables are assigned:

Configuring the NIU: An RX3i NIU target is added to the project:

Page 17: Purpose - General Electric

By default the template creates a number of predefined exchanges and add a secondary Ethernet LAN:

Page 18: Purpose - General Electric

The extra exchanges and ETM are deleted for this example: The ETM is configured:

Page 19: Purpose - General Electric

The NIU’s EGD parameters are configured: 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 NIU’s Consumed Exchange properties are setup:

Page 20: Purpose - General Electric

The producer ID is the IP address of the PLC and no update timeout is being set for this example. A value of zero indicates no timeout. Please refer to the product documentation for more info on these parameters. 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: Controldata_to_NIU 10 Word array discrete_points_to_NIU 64 bit array Analog_points_to_NIU 32 Word array 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:

Page 21: Purpose - General Electric

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.

Page 22: Purpose - General Electric

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:

Page 23: Purpose - General Electric

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)

Page 24: Purpose - General Electric

Matched variables defined in the both the PLC’s Consumed exchange and the NIU’s Produced exchange. The completed ranges for the NIU’s Produced Exchange:

Page 25: Purpose - General Electric

Downloading the Project’s: Go online with PLC: A “Validate and Build of EGD” is performed to the PLC Target: A “Download and Start” is performed:

Page 26: Purpose - General Electric

The PLC is running with Logic and Config Equal:

The NIU is now set as the “Active” Target and a “Bind and Build” of the NIU’s EGD is performed:

Page 27: Purpose - General Electric

An online connection is made to the NIU: A “Download and Start” is performed:

The NIU is running with Logic and Config Equal:

Page 28: Purpose - General Electric

Verifying the Exchanges: 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. For the PLC exchanges the status words were as follow: PLC Consumed Exchange from the NIU:

PLC Produced Exchange to the NIU:

The variables “Con_exc_status_word” and “PLC_Proexc_Status” are placed in a watch list:

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:

Page 29: Purpose - General Electric

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 Consumed exchange (Data from the PLC)

For the NIU’s first Produced exchange (Data to the PLC)

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:

Page 30: Purpose - General Electric

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:

Page 31: Purpose - General Electric

The PLC is producing the following ranges:

Viewing the data in the PLC the following is seen:

The NIU is consuming this data into 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:

Page 32: Purpose - General Electric

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. The Point Faults are enabled on the memory tab of the NIU’s parameters:

Page 33: Purpose - General Electric

A 16 pt. discrete input simulator module is located in slot 8 of the NIU’s main rack:

Page 34: Purpose - General Electric

The configured reference address for the card start at %I00001:

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.

Page 35: Purpose - General Electric

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)

Page 36: Purpose - General Electric

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:

Page 37: Purpose - General Electric

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:

Page 38: Purpose - General Electric

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:

Page 39: Purpose - General Electric

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. A new Threshold Table is created:

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. The Source Property is set to “Boolean”:

Page 40: Purpose - General Electric

“Exact Match” is to used instead of a range comparison: The colors are setup for the on (True) and off (False) States:

Page 41: Purpose - General Electric

An oval is added to Workspace picture: The animations are setup for the oval. This will indicate whether the discrete input’s are on or off: The Foreground color will be used as the indication:

Page 42: Purpose - General Electric

The newly created table will be used:

Page 43: Purpose - General Electric

The Data Source is selected. This will be the discrete point data be sent from the NIU. Since this data is in the EGD OPC server via the Config Sever it can be resolved:

Page 44: Purpose - General Electric

As the discrete data from the NIU was being passed to the EGD OPC Server as a Boolean Array (length 32):

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]'

Page 45: Purpose - General Electric

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:

Page 46: Purpose - General Electric

The data source is set to display the text “Good Quality” when the variable source is equal to 1:

Page 47: Purpose - General Electric
Page 48: Purpose - General Electric

The same is done for the other text box, indicating ‘Bad Quality:

Page 49: Purpose - General Electric

Both boxes are copied and the data source is changed for the second inputs quality coils that were setup:

Page 50: Purpose - General Electric

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:

Page 51: Purpose - General Electric

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:

Page 52: Purpose - General Electric

The correct indications are also seen at the SCADA: