![]() ![]() ![]() ![]() ![]() ![]() ![]() |
The following sections describe how the RFID Edge Server communicates with and controls RFID devices by interacting with a programmable logic controller (PLC).
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 RFID Edge Server to enable PLC communications requires adding the following items to the edge.props
file:
OPC_XML
, StarThis
, and ModBus
.Simple
, CounterPair
, and Multiple
. More than one message can use the same message convention.inboundMessage
and outboundMessage
.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 instructions provided below illustrate one possible configuration after custom development work has been completed.
Note: | All property names shown in this section should be prefixed with com.connecterra.ale.plc , which is abbreviated [CCAP] in the properties below. |
edge.props
and open the original for editing.OPC_XML
, StarThis
, and ModBus
.# 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
#Define ModBus PLC stacklight 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
Simple
, CounterPair
, and Multiple
. The notations <var1>
and <var2>
should be replaced by property names that you choose. # 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. |
<var1>
and <var2>
should be replaced by the property names you chose in step 3.# 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
# Multiple outboundMesssage configuration for stacklight
[CCAP].outboundMessage.stacklight.plcMessageConvention = multiple
[CCAP].outboundMessage.stacklight.items = c1 c2 c3 c4 c5
edge.props
and restart the Edge Server.BCRArrival
in step 4>SgtinAssign
in step 4>edge.props
, do not perform this configuration step in the Administration Console.stacklight
in step 4>
![]() ![]() ![]() |