Skip to end of banner
Go to start of banner

TN-0157 GIS GuardLogix Programming (With Sample Code)

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Table of Contents

Preface

It is desirable to layout general guidelines for programming of various components of the Global Interlock System to produce a consistent and unified approach that will aid the end users in better understanding the system. Development time should also be reduced by fostering the use of re-usable code.

For the most part, these guidelines reflect Rockwell Automation’s own guidelines for modular programming and sample code provided by Rockwell.

Introduction

Purpose

This document will build a foundation for consistency in programming the various components of the Global Interlock System (GIS). Nothing in the document is necessarily an absolute requirement or specification. Consult the appropriate project document, specification, or interface controller document for actual system requirements.

This document is based on standard practices that are found in Rockwell Automation’s documentation for their products, most notably Integrated Architecture: Foundations of Modular Programming.

This document also gathers configuration details into one centralized location.

This document should be a collaborative effort of all vendors, design teams, and the ATST project. It is not the purpose of the document to restrict viable solutions. Comments and discussion of this document are highly encouraged.

Intended Audience

This document is intended primarily to be used by the designers and programmers of the individual local interlock controllers (LICs).

Documents

Related Documents

  • “Global Interlock System Design Definition”, ATST Project Document SPEC-0112.

  • “Global Interlock System Specification”, ATST Project Document SPEC-0046.

Referenced Documents

  • Rockwell Automation, “GuardLogix Controller Systems Safety Reference Manual”, Publication 1756-RM093.

  • Rockwell Automation, “GuardLogix Controllers”, Publication 1756-UM020.

  • Rockwell Automation, “Integrated Architecture: Foundations of Modular Programming”, Publication IA-RM001.

  • Rockwell Automation, “Logix5000 Controllers Common Procedures”, Publication 1756-PM001.

  • Rockwell Automation, “Logix5000 Controllers Ladder Diagram”, Publication 1756-PM008.

  • Rockwell Automation, “Logix5000 Controllers Tasks, Programs, and Routines”, Publication 1756-PM005.

  • Rockwell Automation, “58814 - Smartport assignment guidelines for Stratix 8000”

  • Rockwell Automation, “65491 - Resilient Ethernet Protocol Ring Using Stratix 8000/8300”

  • Rockwell Automation, “65566 - Inter-VLAN routing using Stratix 8300 and Stratix 8000 switches”

Software

The following software will be required for GIS Development

  • RSLogix 5000, version 20.01 or higher

  • Studio 5000 Logix Designer, version 33.01 or higher

  • RSLinx Classic, version 2.57.00 or higher

The following software is recommended in addition to the required software.

  • Cisco Network Assistant, version 5.6 (3) or higher

  • WireShark, version 1.6.5 or higher

 

Configuring the Network

Initial setup

The first step in getting the system up and running is configuring the network switch(es). Follow the procedure given in 1783-UM003 to “initialize the Switch with Express Setup.”

Configure as follows:

Network Settings

Management Interface (VLAN ID)

Default -1

IP Assignment Mode

Static

IP Address

See

Table 1 below

Subnet Mask

255.255.255.0

Default Gateway

10.4.0.200

Password

 

Confirm Password

 

CIP VLAN settings

CIP VLAN

Default 1

IP Address

Blank

Subnet Mask

255.255.255.0

Optional Settings

Host Name

See

Table 1 Switch IP Address Assignments

Table 1 below

System Date

 

System Time

 

 

Figure 1 Express Setup

Table 1 Switch IP Address Assignments

System

Address

Hostname

Global Interlock Controller

10.4.0.200

GIS_Switch

Telescope Mount

10.4.0.201

Tel_Switch

Coudé Rotator System

10.4.0.202

Rot_Switch

Optical Support System

10.4.0.203

OSS_Switch

Instruments System

10.4.0.204

Inst_Switch

Enclosure

10.4.0.205

Enc_Switch

Facility Equipment

10.4.0.206

Fac_Switch

Facility Thermal System

10.4.0.207

FTS_Switch

Development LIC1

10.4.0.208

LIC1_Switch

Enclosure Switch 2

10.4.0.209

Enc2_Switch

Setting up Ports

The Stratix 8300 has pre-configured settings (“Smartports”) that optimize the switch port for the type of device that is connected. See Rockwell knowledge base article 58814 - Smartport assignment guidelines for Stratix 8000.

 

Setting up VLANs

Each subsystem will exist in its own virtual LAN (VLAN). This will require that each switch be configured for each VLAN. In addition, there is a ‘Setup’ VLAN that will facilitate connection to devices at the default IP addresses to enable configuration. Table 2 VLAN Assignments shows the VLANs that should be created on each switch.

Figure 2 VLAN Setup Screen

Table 2 VLAN Assignments

System

VLAN Name

VLAN ID

Global Interlock Controller

VLAN0100

100

Telescope Mount Drive Assembly

VLAN0101

101

Coudé Rotator System

VLAN0102

102

Optical Support System

VLAN0103

103

Instruments System

VLAN0104

104

Enclosure

VLAN0105

105

Facility Equipment

VLAN0106

106

Facility Thermal System

VLAN0107

107

Development LIC1

VLAN0108

108

Development LIC2

VLAN0109

109

Setup

VLAN0192

192

Table 3 Subnet Address Assignments

System

Address Space

VLAN

Global Interlock Controller

10.4.0.0/24

100

Telescope Mount Drive Assembly

10.4.1.0/24

101

Coudé Rotator System

10.4.2.0/24

102

Optical Support System

10.4.3.0/24

103

Instruments System

10.4.4.0/24

104

Enclosure

10.4.5.0/24

105

Facility Equipment

10.4.6.0/24

106

Facility Thermal System

10.4.7.0/24

107

Development LIC1

10.4.8.0/24

108

Development LIC2

10.4.9.0/24

109

Setup

192.168.0.0/16

192

 

Configuring the Guardlogix controller

Firmware

All controller will need to have version 20 of the appropriate firmware installed. The controller will ship with minimal firmware to allow initial configuration and installation of a fully functional version of the firmware.

Safety Network Number

The Safety Network Number (SNN) is a unique number that is generated for each network segment. It is used by the Safety CIP protocol to ensure that the communicating device is indeed the correct device, not just a similar one.

For the purposes of GIS, the automatic, time-based SNN should be sufficient. This should ensure that no two devices share a unique SNN. However, there is a remote but non-zero chance that two units could be configured at different locations by different developers at the exact same moment. Prior to commissioning the entire system, these numbers will need to be verified for their uniqueness.

Safety Locking

Safety-locking the controller helps protect safety control components from modification. This feature requires two separate passwords, one for lock and one for unlock.

See section 15 for password requirements.

Typically, safety-locking will only be required once development is completed on a particular revision and it is ready for verification and validation.

I/O modules

Module Definitions

I/O modules should be configured for providing combined status.

Electronic Keying should be set for ‘Exact Match.’

Requested Packet Interval (RPI) should be set for 20 milliseconds.

‘Major Fault on Controller if Connection Fails While in Run Mode’ should not be set.

Input configuration should be set for single. All inputs will use dual channel input instructions for safety.

Test outputs should be configure as required by how the module is wired to the field devices. Typically, this will be set for pulse test.

Output configuration should be set for single point operation type. Typically, this will be set for Safety Pulse test point mode.

Since the controller and all remote I/O devices are part of the same network the safety network number should be the same as the safety network number of the controller.

Configuring Remote I/O Modules

Firmware

All remote I/O modules will need to have version 20 firmware installed.

1734-AENT/R

These EtherNet adapters typically use one CIP connection when configured for rack-optimized operation. If no standard I/O is used in the chassis this may be configured as connection ‘none’ in module definitions.

To set the IP address, first configure the module with front panel switches to a known address in 192.168.1.0 subnet, such as 192.168.1.99. Using a web browser connect to that IP address.

Select ‘Ethernet Interface Configuration’ to ‘static.’

Select ‘Configuration’ then ‘Network.’ The default user/password is ‘admin’ and ‘password.’

Set the IP address.

Set the subnet mask to 255.255.255.0.

Set the gateway to 10.4.x.1.

Select ‘Apply’ to save the configuration.

Set front panel switches to an invalid number (except ‘888’ which returns the unit to factory settings) such as ‘999.’

Cycle Power.

1734-IB8S

These input modules are by default configured to allow the use of test outputs as standard outputs. This causes the module to consume two CIP connections by default. The output connection can be disabled by turning output data to none in the module definition.

IP Addressing

The GIS is assigned the 10.4.0.0/16 subnet. Each subsystem of the GIS will receive its own /24 network.

Virtual LANs

Each of the subnets will be its own virtual LAN.

Table 4 Subnet Address Assignments

System

Address Space

VLAN

Global Interlock Controller

10.4.0.0/24

100

Telescope Mount Drive Assembly

10.4.1.0/24

101

Coudé Rotator System

10.4.2.0/24

102

Optical Support System

10.4.3.0/24

103

Instruments System

10.4.4.0/24

104

Enclosure

10.4.5.0/24

105

Facility

10.4.6.0/24

106

Facility Thermal System

10.4.7.0/24

107

Development LIC1

10.4.8.0/24

108

Development LIC2

10.4.8.0/24

109

Setup

192.168.1.0/24

192

Host Address

For uniformity the following number scheme is suggested. Replace LIC1 with the appropriate abbreviation from Table 6 LIC Abbreviations. Replace x with the third octet from Table 4.

Table 5 Host Address Assignments

IP Address

Hostname

Description

10.4.x.0/24

 

Local Interlock Controller subnet

10.4.x.1

LIC_Gateway

LIC Stratix 8300 switch Gateway

 

 

 

10.4.x.10

LIC_R00_S02_ENET

first Ethernet adapter

10.4.x.11

LIC_R00_S03_ENET

second Ethernet adapter (if installed)

 

 

 

10.4.x.20

 

Second ControlLogix rack (if installed)

 

 

 

10.4.x.80

GIS_PVP

Reserved for HMI

 

 

 

10.4.x.90

GIS_Dev

Reserved for Development Station

10.4.x.91

GIS_Maint

Reserved for Maintenance Station

 

 

 

10.4.x.101

LIC_R01_S00_ENET

Remote I/O adapter (Rack #01)

10.4.x.102

LIC_R02_S00_ENET

Remote I/O adapter (Rack#02)

10.4.x.103

LIC_R03_S00_ENET

Remote I/O adapter (Rack #03)

10.4.x.199

LIC_R99_S00_ENET

Remote I/O adapter (Rack #99)

 

 

 

10.4.x.201

LIC_Switch201

Embedded Switch #01

10.4.x.202

LIC_Switch202

Embedded Switch #02

10.4.x.203

LIC_Switch203

Embedded Switch #03

10.4.x.254

LIC_Switch254

Embedded Switch #54

 

 

 

 

IP Address

Hostname

Description

10.4.0.0/24

 

Global Interlock Controller subnet

10.4.0.1

 

GIC Gateway

10.4.0.10

GIC_R00_S02_ENET

GIC Safety Network Interface

10.4.0.11

GIC_R00_S03_ENET

GIC Enterprise Network Interface

10.4.0.80

GIC_R00_S05_EWEB

GIC Web Server Interface

10.4.0.88

GIC_R00_S04_TIME

GIC IEEE-1588 Time Service

10.4.0.89

GIC_R00_S06_HIST

GIC Historian Module

10.4.0.90

GIS-DEV

GIC-Development PC

10.4.0.200

GIC_SWITCH

Stratix 8300 switch in GIC cabinet

 

 

 

 

 

 

 

 

 

 

 

 

 

Tags

Tag Scope

All produced and consumed tags are controller-scoped tags. Controller-scoped tags represent information that must be passed between the GIC and the LIC. Program-scoped tags represent information that is only required at the LIC. Examples of controller-scoped tags would be emergency stop status signals.

Produced and Consumed Tags

The entire Global Interlock System will produce and consume a large number of tags. Because of the limited resources available to handle these connections it may be necessary to use user-defined types to aggregate the tags into larger structures.

Tags that will be consumed by the individual LICs from the GIC include emergency stop, fire alarm, and seismic alarm.

Data Access Control

Starting with revision 18 of the RSLogix software, two new tag attributes are available: External Access and Constant.

External Access

External Access attribute defines how an external application can access a tag. Options you can configure for the External Access attribute include:

  • Read/Write

  • Read Only

  • None

By default, all tags external access attribute should be set to None. No tags in the Safety Task should be set to Read/Write.

Program-scoped tags should typically be set to Read Only.

Constant

The Constant attribute is used to protect the tag from being changed via the controller programming application or logic in the controller.

General Naming Conventions

Programs and Routines

  • Names should be meaningful to maintenance personnel.

  • Keep names short by using abbreviations and acronyms.

  • Spaces are not allowed, instead of using underscores (“_”) use mixed case.

  • Use standard industry abbreviations or abbreviations listed in this document.

  • When using abbreviations be consistent, clear, and unambiguous.

Tag Naming

RSLogix enforces the following rules:

  • A name may not exceed 40 characters.

  • A name can contain only upper-case and lower-case letters, numbers and underscores.

  • A name cannot begin with a number.

  • A name cannot have adjacent underscores or end with an underscore.

  • Underscores are significant.

Case is not significant (lower-case letters match upper-case letters), and names are displayed with the case entered when first created. The use of mixed case, sometimes referred to as camel case is desirable to increase legibility.

General Tag Name Guidelines

Care should be taken when choosing names to avoid ambiguity. For example the tags DoorOpen and OpenDoor, each could alternately refer to a door being ajar or a command to open a door. Therefore, such tags should be avoided in favor of tags such as DoorOpened and CmdOpenDoor.

Controller-Scoped Tag Names

Controller-scoped tags will take the format of major_minor_component_signal.

major indicates the major subsystem that the device is located in. This is the controller that “owns” the tag. This is the LIC abbreviation found in Table 6 LIC Abbreviations.

minor indicates the subsystem that the device is associated with, such as Az or El for azimuth and elevation drive subsystems.

component indicates the physical device which the tag is associated with. This could be an individual drive in a subsystem, such as Drive1.

signal is the particular status or information that the tag indicates, such as InputOK or DoorOpened

It is often desirable for the data type to be included in the name. Because data types often contain several pieces of information not just a BOOL value.

Program-Scoped Tag Names

Program-scoped tags, because they are used only within a single LIC have no need of the elaborate structure given in Controller-Scoped Tag Names above.

Aliases

Aliases allow individual tags to be referenced by various nomenclatures. In addition to the base tag, these can include functional names, and even references to schematic diagrams. Tags can even be double aliased.

For example: The first contact block on the emergency stop switch -SF116 is connected to input 0 on the POINT I/O module in slot 01 of rack 01.

LIC1_R01:2:I:PtData01 can be aliased as _SF116_1 which can be further aliased as EStopPB1A. This way a technician referencing the ladder logic can know the actual I/O point, the connected component that the I/O is referencing, and also the logical name.

Descriptions

Descriptions should avoid simply repeating the tag name, but rather more fully describe what the tag represents in the logic. While tag names were chosen to be as clear and concise as possible, clear descriptions will help remove any ambiguity for a technician who may be troubleshooting a problem.

In the DoorOpened example from above, it could clearly indicate which door and that this is an input, “Access Door to Telescope Level is not fully closed and locked.”

I/O and Network Modules

Description

Each module in a RSLogix project requires a unique name. By default, I/O and network modules should be named as follows:

LIC_Rnn_Snn_function

Where LIC represents the ATST system and LIC to which the component belongs. There are seven LICs in the GIS as listed in Table 6 below.  

Rnn is the chassis or remote adapter number. R00 is the local rack, R01 and R02 would be remote adapters #1 and #2.

Snn is the slot number. S00 is slot or module #0 (far left), S01 and S02 would be slot #1 and #2 or module #1 and #2.

function is an abbreviation for the type of module as listed in Table 8 (taken from “Integrated Architecture: Foundations of Modular Programming”).

Strictly adhering to this scheme is not always desirable because it can make for some convoluted and potentially confusing naming. For example, the second input module on a Point I/O chassis would be LIC2_R01_S00_ENET:2:I. In which case, it would be better to not use the slot number and function. This would become LIC2_R01:2.I.

For this reason it is suggested that ‘slot zero,’ the controller or communications adapter, in a chassis not use slot number or function, but rather the logical location or communications adapter name, such as LIC2_GLX would be the GuardLogix controller in LIC2, while LIC1_R01 would be the first remote I/O chassis in the LIC1 system. The rack designation, R01, might also be replaced with a more appropriate identifier, such as

Table 6 LIC Abbreviations

System

Abbreviation

Global Interlock Controller

GIC

Telescope Mount Drive Assembly

Tel

Coudé Rotator System

Rot

Optical Support System

OSS

Instruments System

Inst

Enclosure

Enc

Facility Equipment

Fac

Facility Thermal System

FTS

Table 7 System Abbreviations

System

Abbreviation

Global Interlock Controller

GIC

Telescope Mount Assembly

TMA

M1 Assembly

M1

Top End Optical Assembly

TEOA

Feed Optics

FO

Wavefront Correction

WFC

Observatory Control System

OCS

Telescope Control System

TCS

Enclosure Control System

ECS

Facility Equipment

Fac

Facility Thermal System

FTS

 

 

Table 8 Function Abbreviations

Function

Abbreviation

Example Module

Analog Input

AI

 

Analog Output

AO

 

Discrete Input

DI

1734-IB8S

Discrete Output

DO

1734-OB8S

Analog Input/Output combo

AIO

 

Discrete Input/Output combo

DIO

1791ES-IB8XOBV4

Analog/Discrete Input/Output combo

ADIO

 

Remote I/O

RIO

 

Serial data I/O

SIO

 

Motion I/O

MIO

 

DeviceNet

DNET

 

ControlNet

CNET

 

EtherNet/IP

ENET

1734-AENTR, 1756-EN2TR

Profibus

PFB

 

High Speed Counter

HSC

 

Programmable Limit Switch

PLS

 

Sequence Of Events

SOE

 

GuardLogix Processor

GLX

1756-L62S

ControlLogix Processor

CLX

1756-L55

Examples

Global Interlock Controller rack contains two Ethernet cards, one (in slot #2) for communication with the GIS and the other (in slot #3) for communication with the OCS, they would be called GIC_R00_S02_ENET and GIC_R00_S03_ENET, respectively.

 

Figure 3 Global Interlock Controller

Module Name

Description

GIC_GLX

1756-L63S Controller

GIC_R00_S02_ENET

1756-EN2TR Ethernet adapter in GIC rack slot 2

GIC_R00_S03_ENET

1756-EN2TR Ethernet adapter in GIC rack slot 3

Note that the controller does not specify a rack or slot position, regardless of where it is located as controller have a slightly different naming convention.

Figure 4 Example LIC Remote Rack #01

Module Name

Description

LIC_R01

1791ES-IB8XOBV4 CompactBlock Guard I/O

Note even though there are no slots in this device, the Sxx portion of the name is retained for consistency.

Figure 5 Example LIC Remote I/O Rack #02

Module Name

Description

LIC_R02

1734-AENTR EtherNet/IP adapter (base module)

LIC_R02_S01_DI

1734-IB8S POINT I/O module (left-most)

LIC_R02_S02_DI

1734-IB8S POINT I/O module (second from the left)

LIC_R02_S03_DO

1734-OB8S POINT I/O module (third from the left)

 

Figure 6 Example LIC Remote Rack #03

Module Name

Description

LIC_R03

1734-AENTR EtherNet/IP adapter (base module)

LIC_R03_S01_DI

1734-IB8S POINT I/O module (left-most)

 

User Defined Data Types (UDTs)

All user-defined data types will begin with “UDT_.”

Add-on Instructions (AOIs)

All add-on instructions will begin with “AOI_.”

Ladder Logic

All programming for the Global Interlock system will be Ladder Logic.

Although output instructions can be placed in sequence on a single rung (serial), it is preferred that they are placed in branches (parallel) to assist technicians viewing the ladder logic code. The same applies for mixing input and output instructions on the same line. It is preferred to place the output instruction at the right-most side and create parallel branches as needed. These arrangements are commonly found in hardware relay logic.

 

Possible Option

Preferred

├───────────────( )───( )───┤

├───────────────┬───( )───┤

                └───( )───┤

├───] [───( )───] [───( )───┤

├───] [───┬─────────( )───┤

          └───] [───( )───┤

 

It is preferred that the instruction most likely to be FALSE be placed on the left and the instruction least likely to be FALSE be placed on the right. Typically instructions are executed faster when the rung condition is FALSE.

 

Conventions for Revision numbering

Revision number will apply to all software components as follows:

Program_Name M.n-TT.PP

M, a major revision number, which changes when a major set of components is released as a set.

n, a minor revision number, which changes when a when the interface to the component changes.

TT a “tweak” revision number, which changes when any change at all is made

and PP any system specific revision number.

PP is unlikely to change for the top level programs as there aren’t any system specific revisions (unless a second ATST is built). Rather the PP suffix is useful when producing and sharing routines between subsystems, which require a change from the standard routine that is specific to the subsystem. PP will normally be omitted

Revision Numbering Examples

Program Name

 

GIC_GLX 1.0-00.00

First major release of the GIC code

GIC_GLX 1.0-01.00

First revision, which doesn’t change its interface

GIC_GLX 1.1-00.00

next revision which affects its interface with other systems

The Main Task

The main task does not run on Safety Partner. Safety-related tasks must not be run in the main task.

The main task will handle general controller faults; system health and status updates; and alarms to the rest of the GIS.

Health and status

The controller will monitor itself for general health and produce an alarm if certain thresholds are reached. These should not be safety-related but may indicate a need for service that does not require immediate attention.

One such example is the program backup battery. Another example is redundant power supplies. While a failure of even the second power supply will not result in an unsafe condition this information needs to signal a minor alarm to the system, so that maintenance personnel can address the issue.

Alarms

While the interlocking of the safety system is handled in the Safety Task, alarms for display at the HMI can be handled in the standard task at a much more leisurely update rate. These alarms will provide specific indications of devices which have been activated or are in a faulted condition.

The alarms are to alert the operator to what interlocks have been asserted and the corrective action that must be taken to reset the interlock. Additionally information in the alarms will assist in troubleshooting in the event of faulted conditions.

Fault Handling

Specific routines will handle controller faults. Generally, these will be to generate an alarm and provide status about the controller fault.

There may be some controller faults that are considered so minor that the fault-handling routine will clear them so that normal operation may continue after notifying the operator.

The Safety Task

GuardLogix supports only one Safety Task, called “SafetyTask.” There can be multiple safety programs composed of multiple safety routines. There is a limit of 32 programs in the safety task.

There should be one safety program per independent subsystem. For example, the Enclosure LIC handles both the Carousel and the Coudé Rotator; these are both independent subsystems controlled by the same LIC. On the other hand, the Telescope Mount LIC controls both Az/El motion of the telescope. These are not truly independent.

You cannot schedule standard programs or execute standard routines within the Safety Task.

SafetyProgram

The Safety Program consists of various routines. For each safety function that the LIC performs, there will typically be two single safety routines, one input routine and one output routine. It will be common for several input routines to share output routines. For example, the Emergency Stop input routine will likely be influence every output routine; while output routines will often be influence by a limit (such as and end-of-travel) as well as Emergency Stop.

For some complex functions, such as for emergency stop monitoring, may be broken up into several routines as there may be a large number of emergency stop switches, with each routine handling a group of related switches.

Example Routines

13.1   Main Routine

The main routine of the safety program will consist almost entirely of calls to the various input and output routines.

This routine can be imported from MainRoutine_RTN_1.0-00.L5X.

Emergency Stop Input Routine

This routine monitors input from switches wired to remote I/O points and produces a status signal to indicate when no emergency stop switches have been activated and there are no faults with input switches or communications from the remote I/O.

There may be several of these routines in a given LIC’s safety program. These routines will cover separate ‘zones’ which could be any logical subdivision of the various switches. A ‘zone’ could be all the switches attached to one remote I/O block or could be all the switches located on one level of the facility. The purpose of this division is simply to keep the routine size at a manageable size.

This routine can be imported from EStopInput_RTN_1.0-00.L5X.

Emergency Stop Routine

This routine calls the emergency stop input routines (see 13.2) and produces a status signal to indicate that all emergency stop zone indicate that no emergency stop switches have been activated and there are no faults with input switches or communications from the remote I/O.

If there is only one emergency stop input routine then the JSR instructions in rung 1 can be placed in the MainRoutine and the XIC and OTE instructions in rung 2 can be placed in the emergency stop input routine.

 This routine can be imported from EmergencyStop_RTN_1.0-00.L5X.

Axis Interlock

The routine handles the various interlocks that inhibit contrary motion. Just as there may be multiple routines for handling of emergency stop, there may be multiple routines for handling the various interlocks.

 

Axis End-of-Travel Routine

This routine handles the typical end-of-travel limit switches that are installed on various axes of motion. This routine monitors input from limit switches that are wire to remote I/O points and produces a signal to indicate if the axis has exceed its end-of-travel limits are there are no faults with the limit switches or communications from the remote I/O.

In the event of end-of-travel limit being detected the Axis will produce a Safe Direction signal. On a fault this routine will instead stop motion.

There is only one end-of-travel routine for each axis. This routine is designed to monitor both end-of-travel limit switches plus and additional ‘sector’ switch to allow for rotary axes with more than 360° of rotation. An example of a sector switch would be switch the indicated the position of an end stop.

This routine can be imported from AxisEOTLimit_RTN_1.0-00.L5X.

Axis Final Travel Routine

This routine handles the typical final travel limit switches that are installed on various axes of motion. This routine monitors input from limit switches that are wire to remote I/O points and produces a signal to indicate when the axis is between its final travel limits are there are no faults with the limit switches or communications from the remote I/O.

There is only one final travel limit routine for each axis. This routine is designed to monitor both end-of-travel limit switches plus and additional ‘sector’ switch to allow for rotary axes with more than 360° of rotation. An example of a sector switch would be switch the indicated the position of an end stop.

This routine can be imported from AxisFinalLimit_RTN_1.0-00.L5X.

Axis Absolute Encoder

Instead of using discrete limit switches, the end-of-travel and final limit functions could be based on a safety-rated absolute encoder.

This routine can be imported from AxisAbsoluteEncoder_RTN_1.00-00.L5X.

Axis Enable Pendant

This routine handles the use of an enabling switch to allow Safe Limited Speed motion of an axis.

Axis Enable Output Routine

This routine monitors the conditions that are required to enable the output. This routine is designed to energize dual safety contactors to provide power to the axis’ actuators.

The interlock rungs contain the conditions that must be met in order to enable axis motion. In the example routine, this includes axis within final travel limits, no system interlock from the GIC, no local axis interlock, no global emergency stop, and no local emergency stop.

Additional interlock rungs can be added to avoid extremely long rungs. This will help in legibility by dividing up the various interlocks into manageable sections.

The safety output instruction includes self-monitoring which will disable the output and prevent re-enabling the output in the event of a fault or loss of communications.

This routine can be imported from AxisEnable_RTN_1.0-00.L5X.

Axis Overspeed

This routine monitors the speed of an axis and determines if the axis has exceeded the Safe Maximum Speed or Safe Limited Speed.

The Logix platform does not currently have a built-in overspeed monitoring function. An external module, such as the GuardMaster MSR57P Speed Monitoring Safety Relay, will need to be utilized. See Rockwell Automation Publication SAFETY-AT025, Using the MSR57 in a Safety Architecture to Monitor Machine Motor Speed for details regarding this implementation.

This routine can be imported from AxisOverspeed_RTN_1.0-00.L5X.

Over Temperature

This routine monitors two analog values. Based on the range and tolerance, it compares the two values for agreement. It also has a discrepancy time during which the two values are allowed to diverge. It outputs and OK signal indicating the two values are in agreement and outputs a faulted signal which indicates the two values have exceeded the allowable difference in values for longer than the discrepancy time.

This is a SIL 2 routine.

Communications From LIC to GIC

This routine buffers I/O data into an array (see 14.2 UDT_SafetyArray) which is then produced by the LIC and consumed by the GIC.

Communication from GIC to LIC

This routine buffers I/O data into an array (see 14.2 UDT_SafetyArray) which is then produced by the GIC and consumed by the LIC.

The array contains interlock information such as emergency stop, as well as reset command from the GIC.

GIC to Enclosure LIC bit assignments

The table below is the proposed structure for GIC to Enclosure communications.

Tag Name

Description

GIC_to_ENC

GIC_to_ENC.Connection_Status

GIC_to_ENC.Data[0]

Global Emergency Stop OK

GIC_to_ENC.Data[1]

Fire Alarm OK

GIC_to_ENC.Data[2]

Seismic Alarm OK

GIC_to_ENC.Data[3]

reserved

GIC_to_ENC.Data[4]

Reset Command from GIC

GIC_to_ENC.Data[5]

reserved

GIC_to_ENC.Data[6]

reserved

GIC_to_ENC.Data[7]

reserved

GIC_to_ENC.Data[8]

Inner Pier Hazardous Zone Locked

GIC_to_ENC.Data[9]

Mezzanine Level  Hazardous Zone Locked

GIC_to_ENC.Data[10]

Coudé Lab Hazardous Zone Locked

GIC_to_ENC.Data[11]

Utility Level Hazardous Zone Locked

GIC_to_ENC.Data[12]

Catwalk Hazardous Zone Locked

GIC_to_ENC.Data[13]

Service Ring Hazardous Zone Locked

GIC_to_ENC.Data[14]

Enclosure Floor Hazardous Zone Locked

GIC_to_ENC.Data[15]

Telescope Hazardous Zone Locked

GIC_to_ENC.Data[16]

Upper Enclosure Hazardous Zone Locked

GIC_to_ENC.Data[17]

reserved

GIC_to_ENC.Data[18]

reserved

GIC_to_ENC.Data[19]

reserved

GIC_to_ENC.Data[20]

Enclosure Azimuth OK to move

GIC_to_ENC.Data[21]

Enclosure Azimuth Full Speed OK

GIC_to_ENC.Data[22]

reserved

GIC_to_ENC.Data[23]

reserved

GIC_to_ENC.Data[24]

Enclosure Altitude OK to move

GIC_to_ENC.Data[25]

reserved

GIC_to_ENC.Data[26]

reserved

GIC_to_ENC.Data[27]

reserved

GIC_to_ENC.Data[28]

Aperture Cover OK to move

GIC_to_ENC.Data[29]

Aperture Cover OK to open

GIC_to_ENC.Data[30]

reserved

GIC_to_ENC.Data[31]

reserved

GIC_to_ENC.Data[32]

Bridge Crane OK to move

GIC_to_ENC.Data[33]

reserved

GIC_to_ENC.Data[34]

reserved

GIC_to_ENC.Data[35]

reserved

GIC_to_ENC.Data[36]

Jib Crane OK to move

GIC_to_ENC.Data[37]

reserved

GIC_to_ENC.Data[38]

reserved

GIC_to_ENC.Data[39]

reserved

GIC_to_ENC.Data[40]

Rear Door OK to move

GIC_to_ENC.Data[41]

Rear Door OK to open

GIC_to_ENC.Data[42]

reserved

GIC_to_ENC.Data[43]

reserved

GIC_to_ENC.Data[44]

reserved

GIC_to_ENC.Data[41]-->[127]

not used

Enclosure to GIC bit assignments

Tag Name

Description

ENC_to_ENC

ENC_to_GIC.Connection_Status

ENC_to_GIC.Data[0]

Enclosure Emergency Stop OK

ENC_to_GIC.Data[1]

Enclosure PLC I/O OK (LedStatus=3)

ENC_to_GIC.Data[2]

reserved

ENC_to_GIC.Data[3]

reserved

ENC_to_GIC.Data[4]

Enclosure Azimuth Ready

ENC_to_GIC.Data[5]

Enclosure Altitude Ready

ENC_to_GIC.Data[6]

Enclosure Lower Maintenance trapped key in place

ENC_to_GIC.Data[7]

Enclosure Upper Maintenance trapped key in place

ENC_to_GIC.Data[8]

Enclosure Azimuth Motion Stopped

ENC_to_GIC.Data[9]

Enclosure Azimuth Safely Limited Speed

ENC_to_GIC.Data[10]

Enclosure Azimuth CW Limit

ENC_to_GIC.Data[11]

ReservedEnclosure Azimuth CCW Limit

ENC_to_GIC.Data[12]

Enclosure Altitude Motion Stopped

ENC_to_GIC.Data[13]

Enclosure Altitude local trapped key in place

ENC_to_GIC.Data[14]

Enclosure Altitude Upper Limit

ENC_to_GIC.Data[15]

Enclosure Altitude Lower Limit

ENC_to_GIC.Data[16]

Aperture Cover Closed

ENC_to_GIC.Data[17]

Aperture Cover local trapped key in place

ENC_to_GIC.Data[18]

Aperture Cover Closed Limit

ENC_to_GIC.Data[19]

Aperture Cover Open Limit

ENC_to_GIC.Data[20]

Bridge Crane Stowed

ENC_to_GIC.Data[21]

Bridge Crane local trapped key in place

ENC_to_GIC.Data[22]

reserved

ENC_to_GIC.Data[23]

reserved

ENC_to_GIC.Data[24]

Jib Crane Stowed

ENC_to_GIC.Data[25]

Jib Crane local trapped key in place

ENC_to_GIC.Data[26]

reserved

ENC_to_GIC.Data[27]

reserved

ENC_to_GIC.Data[28]

TEOA Platform Stowed

ENC_to_GIC.Data[29]

TEOA Platform local trapped key in place

ENC_to_GIC.Data[30]

reserved

ENC_to_GIC.Data[31]

reserved

ENC_to_GIC.Data[32]

Enclosure Azimuth aligned with maintenance position

ENC_to_GIC.Data[33]

Transfer Bridge Stowed

ENC_to_GIC.Data[34]

Transfer Bridge Rails Stowed

ENC_to_GIC.Data[35]

reserved

ENC_to_GIC.Data[36]

Rear Door local trapped key in place

ENC_to_GIC.Data[37]

reserved

ENC_to_GIC.Data[38]

reserved

ENC_to_GIC.Data[39]

reserved

ENC_to_GIC.Data[40]

Altitude Cable Wrap Overtension OK

ENC_to_GIC.Data[41]

Azimuth Cable Wrap Overtension OK

ENC_to_GIC.Data[42]

reserved

ENC_to_GIC.Data[43]

reserved

ENC_to_GIC.Data[44]

reserved

ENC_to_GIC.Data[41]-->[127]

not used

GIC to Telescope LIC bit assignments

The table below is the proposed structure for GIC to Enclosure communications.

Tag Name

Description

GIC_to_MLIC

GIC_to_MLIC.Connection_Status

GIC_to_MLIC.Data[0]

Global Emergency Stop OK

GIC_to_MLIC.Data[1]

Fire Alarm OK

GIC_to_MLIC.Data[2]

Seismic Alarm OK

GIC_to_MLIC.Data[3]

reserved

GIC_to_MLIC.Data[4]

Reset Command from GIC

GIC_to_MLIC.Data[5]

reserved

GIC_to_MLIC.Data[6]

reserved

GIC_to_MLIC.Data[7]

reserved

GIC_to_MLIC.Data[8]

Inner Pier Hazardous Zone Locked

GIC_to_MLIC.Data[9]

Mezzanine Level  Hazardous Zone Locked

GIC_to_MLIC.Data[10]

Coudé Lab Hazardous Zone Locked

GIC_to_MLIC.Data[11]

Utility Level Hazardous Zone Locked

GIC_to_MLIC.Data[12]

Catwalk Hazardous Zone Locked

GIC_to_MLIC.Data[13]

Service Ring Hazardous Zone Locked

GIC_to_MLIC.Data[14]

Enclosure Floor Hazardous Zone Locked

GIC_to_MLIC.Data[15]

Telescope Hazardous Zone Locked

GIC_to_MLIC.Data[16]

Upper Enclosure Hazardous Zone Locked

GIC_to_MLIC.Data[17]

reserved

GIC_to_MLIC.Data[18]

reserved

GIC_to_MLIC.Data[19]

reserved

GIC_to_MLIC.Data[20]

Telescope Azimuth OK to move

GIC_to_MLIC.Data[21]

Telescope Azimuth Full Speed OK

GIC_to_MLIC.Data[22]

reserved

GIC_to_MLIC.Data[23]

reserved

GIC_to_MLIC.Data[24]

Telescope Altitude OK to move

GIC_to_MLIC.Data[25]

Telescope Altitude Full Speed OK

GIC_to_MLIC.Data[26]

reserved

GIC_to_MLIC.Data[27]

reserved

GIC_to_MLIC.Data[28]

M1 Cover OK to move

GIC_to_MLIC.Data[29]

M1 Cover OK to open

GIC_to_MLIC.Data[30]

reserved

GIC_to_MLIC.Data[31]

reserved

GIC_to_MLIC.Data[32]

reserved

GIC_to_MLIC.Data[33]

reserved

GIC_to_MLIC.Data[34]

reserved

GIC_to_MLIC.Data[35]

reserved

GIC_to_MLIC.Data[36]

reserved

GIC_to_MLIC.Data[37]

reserved

GIC_to_MLIC.Data[38]

reserved

GIC_to_MLIC.Data[39]

reserved

GIC_to_MLIC.Data[40]

reserved

GIC_to_MLIC.Data[41]

reserved

GIC_to_MLIC.Data[42]

reserved

GIC_to_MLIC.Data[43]

reserved

GIC_to_MLIC.Data[44]

reserved

GIC_to_MLIC.Data[41]-->[127]

not used

Telescope to GIC bit assignments

Tag Name

Description

MLIC_to_GIC

MLIC_to_GIC.Connection_Status

MLIC_to_GIC.Data[0]

Telescope Mount Emergency Stop OK

MLIC_to_GIC.Data[1]

Telescope Mount PLC I/O OK (LedStatus=3)

MLIC_to_GIC.Data[2]

reserved

MLIC_to_GIC.Data[3]

reserved

MLIC_to_GIC.Data[4]

Telescope Mount Azimuth Ready

MLIC_to_GIC.Data[5]

Telescope Mount Altitude Ready

MLIC_to_GIC.Data[6]

Reserved

MLIC_to_GIC.Data[7]

Reserved

MLIC_to_GIC.Data[8]

Telescope Mount Azimuth Motion Stopped

MLIC_to_GIC.Data[9]

Telescope Mount Azimuth at Safe Speed

MLIC_to_GIC.Data[10]

Telescope Mount Azimuth CW Limit

MLIC_to_GIC.Data[11]

Telescope Mount Azimuth CCW Limit

MLIC_to_GIC.Data[12]

Telescope Mount Altitude Motion Stopped

MLIC_to_GIC.Data[13]

Telescope Mount Altitude at Safe Speed

MLIC_to_GIC.Data[14]

Telescope Mount Altitude Upper Limit

MLIC_to_GIC.Data[15]

Telescope Mount Altitude Lower Limit

MLIC_to_GIC.Data[16]

Reserved

MLIC_to_GIC.Data[17]

Reserved

MLIC_to_GIC.Data[18]

Reserved

MLIC_to_GIC.Data[19]

Reserved

MLIC_to_GIC.Data[20]

Telescope in M1 Maintenance Position Azimuth

MLIC_to_GIC.Data[21]

Telescope in M1 Maintenance Position Altitude

MLIC_to_GIC.Data[22]

Telescope in TEOA Maintenance Position Azimuth

MLIC_to_GIC.Data[23]

Telescope in TEOA Maintenance Position Altitude

MLIC_to_GIC.Data[24]

Reserved

MLIC_to_GIC.Data[25]

Reserved

MLIC_to_GIC.Data[26]

Reserved

MLIC_to_GIC.Data[27]

Reserved

MLIC_to_GIC.Data[28]

M1 Cover Closed

MLIC_to_GIC.Data[29]

M1 Cart Jacks Stowed

MLIC_to_GIC.Data[30]

M1 Cover permissive

MLIC_to_GIC.Data[31]

Reserved

MLIC_to_GIC.Data[32]

Telescope Altitude Hazardous Zones Locked

MLIC_to_GIC.Data[33]

Telescope Azimuth Hazardous Zones Locked

MLIC_to_GIC.Data[34]

Telescope Azimuth Cable Wrap Alignment OK

MLIC_to_GIC.Data[35]

Reserved

MLIC_to_GIC.Data[36]

OSS Bridge stowed

MLIC_to_GIC.Data[37]

OSS Bridge permissive

MLIC_to_GIC.Data[38]

M5 Bridge stowed

MLIC_to_GIC.Data[39]

M5 Bridge permissive

MLIC_to_GIC.Data[40]

Nasmyth Stairs Gates Closed

MLIC_to_GIC.Data[41]

Telescope Floor Y+/- Gates Closed

MLIC_to_GIC.Data[42]

Telescope Tower Doors Closed

MLIC_to_GIC.Data[43]

Telescope Floor Hatch Closed

MLIC_to_GIC.Data[44]

Reserved

MLIC_to_GIC.Data[41]-->[127]

not used

GIC to Coudé Rotator LIC bit assignments

The table below is the proposed structure for GIC to Enclosure communications.

Tag Name

Description

GIC_to_CLIC

GIC_to_CLIC.Connection_Status

GIC_to_CLIC.Data[0]

Global Emergency Stop OK

GIC_to_CLIC.Data[1]

Fire Alarm OK

GIC_to_CLIC.Data[2]

Seismic Alarm OK

GIC_to_CLIC.Data[3]

Heartbeat

GIC_to_CLIC.Data[4]

Reset Command from GIC

GIC_to_CLIC.Data[5]

Reserved

GIC_to_CLIC.Data[6]

reserved

GIC_to_CLIC.Data[7]

reserved

GIC_to_CLIC.Data[8]

Inner Pier Hazardous Zone Locked

GIC_to_CLIC.Data[9]

Mezzanine Level  Hazardous Zone Locked

GIC_to_CLIC.Data[10]

Coudé Lab Hazardous Zone Locked

GIC_to_CLIC.Data[11]

Utility Level Hazardous Zone Locked

GIC_to_CLIC.Data[12]

Catwalk Hazardous Zone Locked

GIC_to_CLIC.Data[13]

Service Ring Hazardous Zone Locked

GIC_to_CLIC.Data[14]

Enclosure Floor Hazardous Zone Locked

GIC_to_CLIC.Data[15]

Telescope Hazardous Zone Locked

GIC_to_CLIC.Data[16]

Upper Enclosure Hazardous Zone Locked

GIC_to_CLIC.Data[17]

reserved

GIC_to_CLIC.Data[18]

reserved

GIC_to_CLIC.Data[19]

reserved

GIC_to_CLIC.Data[20]

Coudé Azimuth OK to move

GIC_to_CLIC.Data[21]

Coudé Azimuth Full Speed OK

GIC_to_CLIC.Data[22]

reserved

GIC_to_CLIC.Data[23]

reserved

GIC_to_CLIC.Data[24]

reserved

GIC_to_CLIC.Data[25]

reserved

GIC_to_CLIC.Data[26]

reserved

GIC_to_CLIC.Data[27]

reserved

GIC_to_CLIC.Data[28]

reserved

GIC_to_CLIC.Data[29]

reserved

GIC_to_CLIC.Data[30]

reserved

GIC_to_CLIC.Data[31]

reserved

GIC_to_CLIC.Data[32]

reserved

GIC_to_CLIC.Data[33]

reserved

GIC_to_CLIC.Data[34]

reserved

GIC_to_CLIC.Data[35]

reserved

GIC_to_CLIC.Data[36]

reserved

GIC_to_CLIC.Data[37]

reserved

GIC_to_CLIC.Data[38]

reserved

GIC_to_CLIC.Data[39]

reserved

GIC_to_CLIC.Data[40]

reserved

GIC_to_CLIC.Data[41]

reserved

GIC_to_CLIC.Data[42]

reserved

GIC_to_CLIC.Data[43]

reserved

GIC_to_CLIC.Data[44]

reserved

GIC_to_CLIC.Data[41]-->[127]

not used

Coudé Rotator to GIC bit assignments

Tag Name

Description

CLIC_to_GIC

CLIC_to_GIC.Connection_Status

CLIC_to_GIC.Data[0]

Rotator Emergency Stop OK

CLIC_to_GIC.Data[1]

Rotator PLC I/O OK (LedStatus=3)

CLIC_to_GIC.Data[2]

reserved

CLIC_to_GIC.Data[3]

reserved

CLIC_to_GIC.Data[4]

Rotator Azimuth Ready

CLIC_to_GIC.Data[5]

reserved

CLIC_to_GIC.Data[6]

reserved

CLIC_to_GIC.Data[7]

reserved

CLIC_to_GIC.Data[8]

Rotator Motion Stopped

CLIC_to_GIC.Data[9]

Rotator at Safe Limited Speed

CLIC_to_GIC.Data[10]

Rotator CW Final Limit OK (0=in limit)

CLIC_to_GIC.Data[11]

Rotator CCW Limit OK  (0=in limit)

CLIC_to_GIC.Data[12]

reserved

CLIC_to_GIC.Data[13]

reserved

CLIC_to_GIC.Data[14]

reserved

CLIC_to_GIC.Data[15]

reserved

CLIC_to_GIC.Data[16]

reserved

CLIC_to_GIC.Data[17]

reserved

CLIC_to_GIC.Data[18]

reserved

CLIC_to_GIC.Data[19]

reserved

CLIC_to_GIC.Data[20]

Rotator Cable Wrap Alignment OK

CLIC_to_GIC.Data[21]

reserved

CLIC_to_GIC.Data[22]

reserved

CLIC_to_GIC.Data[23]

reserved

CLIC_to_GIC.Data[24]

reserved

CLIC_to_GIC.Data[25]

reserved

CLIC_to_GIC.Data[26]

reserved

CLIC_to_GIC.Data[27]

reserved

CLIC_to_GIC.Data[28]

reserved

CLIC_to_GIC.Data[29]

reserved

CLIC_to_GIC.Data[30]

reserved

CLIC_to_GIC.Data[31]

reserved

CLIC_to_GIC.Data[32]

reserved

CLIC_to_GIC.Data[33]

reserved

CLIC_to_GIC.Data[34]

reserved

CLIC_to_GIC.Data[35]

reserved

CLIC_to_GIC.Data[36]

reserved

CLIC_to_GIC.Data[37]

reserved

CLIC_to_GIC.Data[38]

reserved

CLIC_to_GIC.Data[39]

reserved

CLIC_to_GIC.Data[40]

reserved

CLIC_to_GIC.Data[41]

reserved

CLIC_to_GIC.Data[42]

reserved

CLIC_to_GIC.Data[43]

reserved

CLIC_to_GIC.Data[44]

reserved

CLIC_to_GIC.Data[41]-->[127]

not used

 

Optical Subsystem (OSS) to GIC bit assignments

Tag Name

Description

OSS_to_GIC

OSS_to_GIC.Connection_Status

OSS_to_GIC.Data[0]

OSS Emergency Stop OK

OSS_to_GIC.Data[1]

OSS PLC I/O OK (LedStatus=3)

OSS_to_GIC.Data[2]

reserved

OSS_to_GIC.Data[3]

reserved

OSS_to_GIC.Data[4]

reserved

OSS_to_GIC.Data[5]

reserved

OSS_to_GIC.Data[6]

reserved

OSS_to_GIC.Data[7]

reserved

OSS_to_GIC.Data[8]

On Sun

OSS_to_GIC.Data[9]

reserved

OSS_to_GIC.Data[10]

reserved

OSS_to_GIC.Data[11]

reserved

OSS_to_GIC.Data[12]

reserved

OSS_to_GIC.Data[13]

reserved

OSS_to_GIC.Data[14]

reserved

OSS_to_GIC.Data[15]

Reserved

OSS_to_GIC.Data[16]

Heat Stop Shutter is fully open

OSS_to_GIC.Data[17]

Heat Stop Shutter is fully closed

OSS_to_GIC.Data[18]

Heat Stop Safety Shutter permissive

OSS_to_GIC.Data[19]

Heat Stop Temperature is OK

OSS_to_GIC.Data[20]

Heat Stop Coolant Pressure is OK

OSS_to_GIC.Data[21]

Reserved

OSS_to_GIC.Data[22]

Reserved

OSS_to_GIC.Data[23]

Reserved

OSS_to_GIC.Data[24]

Heat Stop is installed

OSS_to_GIC.Data[25]

M2 is installed

OSS_to_GIC.Data[26]

Reserved

OSS_to_GIC.Data[27]

reserved

OSS_to_GIC.Data[28]

reserved

OSS_to_GIC.Data[29]

reserved

OSS_to_GIC.Data[30]

reserved

OSS_to_GIC.Data[31]

reserved

OSS_to_GIC.Data[32]

M5 Temperature is OK.

OSS_to_GIC.Data[33]

reserved

OSS_to_GIC.Data[34]

reserved

OSS_to_GIC.Data[35]

reserved

OSS_to_GIC.Data[36]

reserved

OSS_to_GIC.Data[37]

reserved

OSS_to_GIC.Data[38]

reserved

OSS_to_GIC.Data[39]

reserved

OSS_to_GIC.Data[40]

reserved

OSS_to_GIC.Data[41]

reserved

OSS_to_GIC.Data[42]

reserved

OSS_to_GIC.Data[43]

reserved

OSS_to_GIC.Data[44]

reserved

OSS_to_GIC.Data[41]-->[127]

not used

Instrument LIC to GIC bit assignments

Tag Name

Description

INST_to_GIC

INST_to_GIC.Connection_Status

INST_to_GIC.Data[0]

Instruments Emergency Stop OK

INST_to_GIC.Data[1]

Instruments PLC I/O OK (LedStatus=3)

INST_to_GIC.Data[2]

Reserved

INST_to_GIC.Data[3]

Reserved

INST_to_GIC.Data[4]

Reserved

INST_to_GIC.Data[5]

Reserved

INST_to_GIC.Data[6]

Reserved

INST_to_GIC.Data[7]

Reserved

INST_to_GIC.Data[8]

Reserved

INST_to_GIC.Data[9]

Reserved

INST_to_GIC.Data[10]

Reserved

INST_to_GIC.Data[11]

Reserved

INST_to_GIC.Data[12]

Reserved

INST_to_GIC.Data[13]

Reserved

INST_to_GIC.Data[14]

Reserved

INST_to_GIC.Data[15]

Reserved

INST_to_GIC.Data[16]

Reserved

INST_to_GIC.Data[17]

Reserved

INST_to_GIC.Data[18]

Reserved

INST_to_GIC.Data[19]

Reserved

INST_to_GIC.Data[20]

Reserved

INST_to_GIC.Data[21]

Reserved

INST_to_GIC.Data[22]

Reserved

INST_to_GIC.Data[23]

Reserved

INST_to_GIC.Data[24]

Reserved

INST_to_GIC.Data[25]

Reserved

INST_to_GIC.Data[26]

Reserved

INST_to_GIC.Data[27]

Reserved

INST_to_GIC.Data[28]

Reserved

INST_to_GIC.Data[29]

Reserved

INST_to_GIC.Data[30]

Reserved

INST_to_GIC.Data[31]

Reserved

INST_to_GIC.Data[32]

Reserved

INST_to_GIC.Data[33]

Reserved

INST_to_GIC.Data[34]

Reserved

INST_to_GIC.Data[35]

Reserved

INST_to_GIC.Data[36]

Reserved

INST_to_GIC.Data[37]

Reserved

INST_to_GIC.Data[38]

Reserved

INST_to_GIC.Data[39]

Reserved

INST_to_GIC.Data[40]

Reserved

INST_to_GIC.Data[41]

Reserved

INST_to_GIC.Data[42]

Reserved

INST_to_GIC.Data[43]

Reserved

INST_to_GIC.Data[44]

Reserved

INST_to_GIC.Data[41]-->[127]

not used

 

User Defined Types

UDT_SafetyBOOL

For produced/consumed safety tags it is necessary to create a user-defined type. UDT_SafetyBOOL consists of CONNECTION_STATUS and a BOOL.

This data type can be imported from UDT_SafetyBOOL_UDT_1.0-00.L5X.

UDT_SafetyArray

For communications between LIC and GIC to conserve the number of connections it is desirable to create a user-defined type UDT_SafetyArray which consists of Connection_Status and an array of BOOLs. An array of 128 BOOLs was chosen as the standard length as it should provide sufficient capacity for all foreseen needs.

BOOL arrays do have some limitations that an array of DINTs would not have. Namely the use of file instructions, copy instructions, or DDT/FBC instructions. The choice of BOOL vs. DINT was based on this data being used for safety purposes which should be handled by bit instructions.

This data type can be imported from UDT_SafetyArray_UDT_1.0-00.L5X.

 

Passwords

Suggested best practices

Default passwords are never to be used.

The same password is not to be used for multiple purposes; such as using the same password for both the lock and unlock function in a GuardLogix controller, or using the same password for all the EtherNet routers. In addition to making a more secure system this also helps prevent inadvertent configuration/programming changes.

Passwords should meet the following complexity requirements:

  • should not contain all or any part of the user account name

  • should be at least six characters long

  • should contain characters from three of the following four categories:

    • unaccented uppercase characters (A to Z)

    • unaccented lowercase characters (a to z)

    • numerals (0 to 9)

    • non-alphanumeric characters (!, @, #, %)

 

Appendix A Workstation Setup

Isolated Network

The easiest, safest, and most secure method is to completely isolate the Safety Network by disconnecting the development workstation from the facility LAN and Internet. There will be no duplication of IP addresses or unwanted traffic entering or leaving the Safety Network. This of course limits functionality of the development workstation and will require the implantation of “SneakerNet” i.e. using portable flash drives to carrying information between the networks. This method ensures that IP address will not be duplicated on the facility LAN.

Configuring a second network card

When developing applications, it is often desirable to be able to access the both the normal facility LAN and the Safety Network. I’ve used a method that utilizes a second network interface card (NIC). This ensures that no one can directly connect to the Safety Network (other than the development workstation).

This method cannot be used if development station needs to access the facility LAN which uses the 10.4.0.0/16 network.

Install a second NIC into the development workstation. If this is not possible, such as when using a laptop, a simple USB to Ethernet adapter will suffice (I have used a TrendNet TU2-ET100 with success).

The NIC should be configured as follows:

 

 

IP address

See To ensure the second NIC properly routes traffic it may be necessary to add static routing to the PC. In Windows 7, this is done from an elevated command prompt.

route –p add 10.4.0.0 mask 255.255.255.0 10.4.0.200

route –p add 192.168.0.0 mask 255.255.0.0 10.4.0.200

Table 9 below

Subnet mask

255.255.255.0

Default gateway

10.4.0.200

 

 

To ensure the second NIC properly routes traffic it may be necessary to add static routing to the PC. In Windows 7, this is done from an elevated command prompt.

route –p add 10.4.0.0 mask 255.255.255.0 10.4.0.200

route –p add 192.168.0.0 mask 255.255.0.0 10.4.0.200

Table 9 PC IP Address Assignments

System

Address

Hostname

ATST GIS Development

10.4.0.90

GIS_Dev

ATST GIS Maintenance

10.4.0.91

GIS_Maint

IMT Telescope Mount Drive Assembly Development

10.4.0.92

Tel_Dev

IMT Coudé Rotator System Development

10.4.0.93

Rot_Dev

Optical Support System Development

10.4.0.94

OSS_Dev

Instruments System Development

10.4.0.95

Inst_Dev

Enclosure Development

10.4.0.96

Enc_Dev

Facility Equipment Development

10.4.0.97

Fac_Dev

Facility Thermal System Development

10.4.0.98

FTS_Dev

If additional addresses are needed they can be easily assigned, but they need to be coordinated with ATST to avoid duplication of addresses.

 

Appendix B  

Configure IP Directed-Broadcast

To allow RSLinx to browse remote subnets across a Layer 3 switch, the switch has to be configured to allow directed broadcasts. This is typically disabled because it can allow a Denial-of-Service attack to be launch against remote subnets.

In order to configure an IP access list to control directed broadcasts, complete one of these steps:

telnet to switch

enable privileged mode

enter configure mode

Configure the ip directed-broadcast command directly on an interface:

Hostname(config)#interface FastEthernet

Hostname(config-if)#ip directed-broadcast

Configure an access control list (ACL) in order to permit traffic only from a trusted source. For example, 192.168.10.10 is the Wake-on-LAN (WoL) server.

Hostname(config)# access-list 10 permit 10.4.0.90

Then, apply that under the VLAN interface:

Hostname(config)# interface Vlan <Vlan id>

Hostname(config-if)# ip address x.x.y.y subnet mask

Hostname(config-if)# no ip redirects

Hostname(config-if)# ip directed-broadcast 10

!--- 10 is the ACL number.

 

C:>telnet 10.4.0.200

GIS_Switch> enable

Password: <password>

GIS_Switch# configure

GIS_Switch(config)# interface vlan 106

GIS_Switch(config-if)# ip address 10.4.6.1 255.255.255.0

GIS_Switch(config-if)# no ip redirects

GIS_Switch(config-if)# ip directed broadcast 10

GIS_Switch(config-if)# ^Z

GIS_Switch#exit

  • No labels