Reader Reference

     Previous  Next    Open TOC in new window  Open Index in new window  View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Controlling RFID Devices via PLC

The following sections describe how the RFID Edge Server communicates with and controls RFID devices by interacting with a programmable logic controller (PLC).

 


Overview of PLC Communications

The WebLogic RFID Edge Server allows you to receive information about other devices and control them, by communicating with a programmable logic controller (PLC), which is a specialized industrial computer used for automation of real-world processes. A PLC has a number of registers, which are used to hold information. Registers are sometimes referred to as items or tags (not to be confused with EPC tags). Applications interacting with the PLC can either:

 


Configuring the Edge Server for PLC Communications

Configuring the RFID Edge Server to enable PLC communications requires adding the following items to the edge.props file:

In general, users who want to enable their installation of the RFID Edge Server to control RFID devices using programmable logic controllers will need some custom development effort. The examples provided below illustrate possible configurations after custom development work has been completed.

PLC-Connected Reader and Printer Example

Note: All property names shown in this section should be prefixed with com.connecterra.ale.plc, which is abbreviated [CCAP] in the properties below.
  1. Create a backup copy of edge.props and open the original for editing.
  2. Define a transport to be used for PLC communications. The supported implementations are OPC_XML, StarThis, and ModBus.
  3. # ModBus configuration
    [CCAP].plcTransport.modbus1.metaName = ModBus
    [CCAP].plcTransport.modbus1.hostname = ip_address
    [CCAP].plcTransport.modbus1.socketTimeout = 10000
    [CCAP].plcTransport.modbus1.pollInterval = 500
    # OPC_XML configuration
    [CCAP].plcTransport.opcABC.metaName = OPC_XML
    [CCAP].plcTransport.opcABC.hostname = http://plchost/path
    # StarThis configuration
    [CCAP].plcTransport.ab1756.metaName = StarThis
    [CCAP].plcTransport.ab1756.licenseDir = ..\licenses
    [CCAP].plcTransport.ab1756.storageDir = ..\var\plc-storage
    [CCAP].plcTransport.ab1756.hostname = ab1756
    [CCAP].plcTransport.ab1756.backplanePort = 0
    [CCAP].plcTransport.ab1756.pollInterval = 50
  4. Choose a message convention. The types supported are Simple, CounterPair, and Multiple. The notations <var1> and <var2> should be replaced by property names that you choose.
  5. # SimpleTransaction configuration
    [CCAP].plcMessageConvention.<var1>.metaName = Simple
    # The plcTransport name shown below should be a hostname from step 2.
    [CCAP].plcMessageConvention.<var1>.plcTransport = ab1756
    # CounterPairTransaction configuration
    [CCAP].plcMessageConvention.<var2>.metaName = CounterPair
    # Define ModBus PLC message convention for writing
    [CCAP].plcMessageConvention.multiple.metaName = Multiple
    [CCAP].plcMessageConvention.multiple.plcTransport = modbus1
    # The plcTransport name shown below should be a hostname from step 2.
    [CCAP].plcMessageConvention.<var2>.plcTransport = ab1756
    [CCAP].plcMessageConvention.<var2>.restart.receiveCounterItem = PLCRestart[2]
    [CCAP].plcMessageConvention.<var2>.restart.ackCounterItem = PLCRestartAck[2]
    [CCAP].plcMessageConvention.<var2>.restart.dataItems = PLCRestart[0]
    [CCAP].plcMessageConvention.<var2>.restart.prefetch = true
    # Configure the next two properties on ONE client only
    [CCAP].plcMessageConvention.<var2>.restartAckStatusItem = PLCRestartAck[0]
    [CCAP].plcMessageConvention.<var2>.restartDelay = 100
    Note: The array elements shown above and in step 4 refer to PLC registers on the PLCs in use at your organization. Both the register names and element numbers may differ from the sample information shown.
  6. Define the inbound and outbound messages for the message convention chosen in the prior step. The notations <var1> and <var2> should be replaced by the property names you chose in step 3.
  7. # Simple inboundMessage configuration
    [CCAP].inboundMessage.doorOpen.plcMessageConvention = <var1>
    [CCAP].inboundMessage.doorOpen.receiveItem = D2052
    [CCAP].inboundMessage.doorOpen.matchValues = true
    # CounterPair inboundMessage configuration
    [CCAP].inboundMessage.BCRArrival.plcMessageConvention = <var2>
    [CCAP].inboundMessage.BCRArrival.receiveCounterItem = BCRArrival[19]
    [CCAP].inboundMessage.BCRArrival.ackCounterItem = BCRArrivalAck[0]
    [CCAP].inboundMessage.BCRArrival.dataItems = BCRArrival
    # CounterPair outboundMessage configuration
    [CCAP].outboundMessage.SgtinAssign.plcMessageConvention = <var2>
    [CCAP].outboundMessage.SgtinAssign.sendCounterItem = SgtinAssign[59]
    [CCAP].outboundMessage.SgtinAssign.ackCounterItem = SGTINAssignAck[0]
    [CCAP].outboundMessage.SgtinAssign.dataItems = SgtinAssign
  8. Save the changes to edge.props and restart the Edge Server.
  9. Configure your RFID devices to communicate with the PLC by defining devices as shown below using the RFID Devices node in the Administration Console:

PLC Stack Light Example

For a PLC stack light, there are two components that you must configure:

You can configure the PLC stack light device in the Administration Console or edge.props file. The PLC outbound message can only be defined in edge.props.

In order to map which PLC outbound message the PLC stack light device uses, you specify the PLC outbound message name, defined in edge.props (in step 3 below, [CCAP].outboundMessage.stacklight.plcMessageConvention = multiple) when you configure the PLC stack light device in the Administration Console (in step 5 below, PLC set stack light message name = stacklight). The PLC outbound message name (for example, stacklight) can be any string you choose, but it must be specified in both the PLC stack light device configuration and the PLC outbound message definition.

  1. Create a backup copy of edge.props and open the original for editing.
  2. Define a PLC stack light device.
  3. #Define ModBus PLC stack light reader. Note that the stack light reader is
    #defined either using the Administration Console or by editing the
    #edge.props file. The default behavior
    #com.connecterra.ale.dynamicConfig.enabled = true, means that you configure
    #the reader using the Administration Console. If you want to define and
    #configure the reader in the edge.props file, set this property to false.
    com.connecterra.ale.reader.stacklight.class = com.connecterra.ale.readertypes.PLCStackLightPhysicalReader
    com.connecterra.ale.reader.stacklight.plcMessage = stacklight
    com.connecterra.ale.reader.stacklight.defaultRate = 0
    com.connecterra.ale.reader.stacklight.stackLightLogicalReaderName = StackLight
  4. Choose a message convention and define the outbound messages for the message convention.
  5. # Multiple outboundMesssage configuration for `stacklight'
    com.connecterra.ale.plc.outboundMessage.stacklight.plcMessageConvention = multiple
    com.connecterra.ale.plc.outboundMessage.stacklight.items = c1 c2 c3 c4 c5
  6. Save the changes to edge.props and restart the Edge Server.
  7. Configure your RFID devices to communicate with the PLC by defining devices as shown below using the RFID Devices node in the Administration Console:

  Back to Top       Previous  Next