Process Motor (PMTR)

This information applies to the CompactLogix 5380P and ControlLogix 5580P controllers.
The Process Motor (PMTR) instruction monitors and controls a fixed single-speed, two-speed, or reversing motor using a full-voltage contactor or intelligent motor controller (soft starter). The motor can be run or jogged, including jogging reverse or jogging fast, as configured by the user. The interface to the hardware motor controller can be through a Device Object Interface or through individual pins. The object is a configurable, built-in combination of the existing PlantPAx P_Motor (single speed), P_Motor2Spd (two speed), P_MotorRev (reversing), and P_MotorHO (hand-operated or monitor-only) Add-on instructions in the Rockwell Automation Library of Process Objects.
Use the PMTR instruction to:
  • Monitor and control a single speed, two speed, or reversing motor using a full voltage contactor (or contactor pair) or a smart motor control (soft starter). This instruction is not used with variable speed drives controlling velocity or position, and it does not use any motion axes.
  • Select Operator, Program, External, Override, Maintenance, Out of Service, or Hand as the source of motor commands.
  • Use the selected command source to start the motor forward.
  • Use the selected command source to start the motor reverse, if configured for reversing, or start the motor at high speed, if configured for two-speed operation.
  • Use the selected command source to jog the motor forward. Only Operator, External and Maintenance command sources are permitted to jog the motor.
  • Use the selected command source to jog the motor reverse, if configured for reversing, or jog the motor at high speed, if configured for two-speed operation. Only Operator, External and Maintenance command sources are permitted to jog the motor.
  • Monitor actual motor status, including:
    • Run feedback (including separate feedback for slow and fast for two speed operation or forward and reverse for reversing operation)
    • Motor controller ready
    • Commanded direction / speed
    • Actual direction / speed
    • Motor controller warning
    • Motor controller faulted (with fault code and description)
  • Interface to a motor Device Object using a set of Power Discrete interface tags. If the interface tags are not linked (optional InOut parameters), a set of input and output parameters are used to interface to the starter or motor controller signal-by-signal.
  • Search a linked Fault Code Lookup Table to provide textual motor controller fault information, or use text provided via the Power Discrete interface fault record.
  • Participate in a control strategy bus (BUS_OBJ) with other devices and process instructions.
  • Configure an output to pre-start warning audible (horn) with configurable alert time before starting or jogging.
  • Configure virtualization, providing simulated feedback of a working motor while disabling outputs to the physical device.
  • Monitor run feedback and status or alarms for failure to start in the configured time and failure to stop in the configured time.
  • Monitor Permissive conditions to allow starting or jogging the motor forward / slow.
  • Monitor Permissive conditions to allow starting or jogging the motor reverse / fast.
  • Monitor Interlock conditions to stop and prevent starting or jogging the motor.
  • Monitor I/O communication faults.
  • Trigger an alarm if interlock conditions cause the motor to be stopped.
  • Automatically clear latched alarms and motor controller faults when an Operator Command (Start, Stop, Jog) is received.
  • Automatically clear latched alarms and motor controller faults when an External Command (Start, Stop, Jog) is received.
  • Use HMI breadcrumbs for Alarm Inhibited, Bad Configuration, Not Ready, and Maintenance Bypass Active.
  • Use Available status for use by automation logic to indicate whether a motor can be controlled by other objects.
  • Use Alarms for Fail to Start, Fail to Stop, Interlock Trip, I/O Fault, and Motor Fault.
Available Languages
Ladder Diagram
PMTR_avail_ladder
Function Block Diagram
PMTR_avail_FBD
Structured Text
PMTR (PMTRTag, Ref_Ctrl_Set tag, Ref_Ctrl_Cmd tag, Ref_Ctrl_Sts tag, BusObj tag, Ref_FaultCodeList tag);
Operands
IMPORTANT:
Unexpected operation may occur if:
  • Output tag operands are overwritten.
  • Members of a structure operand are overwritten.
  • Except when specified, structure operands are shared by multiple instructions.
There are data conversion rules for mixing numeric data types within an instruction. See
Data Conversions
.
Configuration Operands
Operand
Type
Format
Description
PlantPAx Control
P_MOTOR_DISCRETE
tag
Data structure required for proper operation of instruction.
Ref_Ctrl_Set
RAC_ITF_DVC_PWRDISCRETE_SET
tag
Power Discrete Device Object Settings Interface.
Ref_Ctrl_Cmd
RAC_ITF_DVC_PWRDISCRETE_CMD
tag
Power Discrete Device Object Command Interface.
Ref_Ctrl_Sts
RAC_ITF_DVC_PWRDISCRETE_STS
tag
Power Discrete Device Object Status Interface.
BusObj
BUS_OBJ
tag
Bus component.
Ref_FaultCodeList
RAC_CODE_DESCRIPTION[x]
tag
Fault Code to Fault Description lookup table for intelligent motor controller.
P_MOTOR_DISCRETE Structure
Public members are standard, visible tag members that are programmatically accessible. Private, hidden members are used in HMI faceplates and are not programmatically accessible. Private members are listed in separate tables after public members.
Public Input Members
Data Type
FBD Default Visibility
FBD Wiring required
Usage
Description
EnableIn
BOOL
Not Visible
Not Required
Input
Enable Input - System Defined Parameter
Default is true.
Inp_InitializeReq
BOOL
Not Visible
Not Required
Input
1 = Request to initialize the instruction. The instruction is normally initialized in instruction first run. Use this request when reinitialization is needed. The instruction clears this operand automatically.
Default is true.
Inp_OwnerCmd
DINT
Not Visible
Not Required
Input
Owner device command.
0 = None,
.10 = Operator Lock,
.11 = Operator Unlock,
.12 = Program Lock,
.13 = Program Unlock,
.14 = Acquire Maintenance,
.15 = Release Maintenance,
.16 = Acquire External,
.17 = Release External,
.29 = Echo.
Default is 0.
Inp_LastFaultCodeData
DINT
Not Visible
Not Required
Input
Most recent intelligent motor controller Fault Code (enumeration).
Default is 0.
Inp_ReadyData
BOOL
Not Visible
Not Required
Input
1=Intelligent motor controller is ready to run.
Default is true.
Inp_1RunFdbkData
BOOL
Not Visible
Not Required
Input
1=Motor is Running Forward or Slow.
Default is false.
Inp_2RunFdbkData
BOOL
Not Visible
Not Required
Input
1=Motor is Running Reverse or Fast.
Default is false.
Inp_AlarmData
BOOL
Not Visible
Not Required
Input
1=Intelligent motor controller has a Warning or Alarm. See controller display or manual.
Default is false.
Inp_FaultedData
BOOL
Not Visible
Not Required
Input
1=Intelligent motor controller has Faulted. See controller display or manual.
Default is false.
Inp_DvcNotify
SINT
Not Visible
Not Required
Input
Related device object alarm priority and acknowledgement status.
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Inp_IOFault
BOOL
Visible
Not Required
Input
Indicates the IO data are inaccurate.
0 = The IO data are good,
1 = The IO data are bad, causing fault.
If the Motor is not virtual, this input sets Sts_IOFault, which raises IOFault Alarm.
Default is false.
Inp_1PermOK
BOOL
Visible
Not Required
Input
1 = Permissives OK, motor can start or jog Forward / Slow.
Default is true.
Inp_1NBPermOK
BOOL
Visible
Not Required
Input
1 = Non-Bypassable Permissives OK, motor can start or jog Forward / Slow.
Default is true.
Inp_2PermOK
BOOL
Not Visible
Not Required
Input
1 = Permissives OK, motor can start or jog Reverse / Fast.
Default is true.
Inp_2NBPermOK
BOOL
Not Visible
Not Required
Input
1 = Non-Bypassable Permissives OK, motor can start or jog Reverse / Fast.
Default is true.
Inp_IntlkOK
BOOL
Visible
Not Required
Input
1 = Interlocks OK, motor can start or jog and keep running.
Default is true.
Inp_NBIntlkOK
BOOL
Visible
Not Required
Input
1 = Non-bypassable interlocks OK, motor can start or jog and keep running.
Default is true.
Inp_IntlkAvailable
BOOL
Visible
Not Required
Input
1 = Interlock Availibility OK.
Default is false.
Inp_IntlkTripInh
BOOL
Visible
Not Required
Input
1 = Inhibit Interlock Trip Status
Default is false.
Inp_RdyReset
BOOL
Not Visible
Not Required
Input
1 = Related object, reset by this object, is ready to be reset.
Default is false.
Inp_Hand
BOOL
Not Visible
Not Required
Input
1 = Acquire Hand (typically hardwired local), 0 = Release Hand.
Default is false.
Inp_Ovrd
BOOL
Not Visible
Not Required
Input
1 = Acquire Override (higher priority program logic), 0 = Release Override.
Default is false.
Inp_OvrdCmd
SINT
Not Visible
Not Required
Input
Override Command:
0 = None,
1 = Stop,
2 = Start 1 (Forward / Slow),
3 = Start2 (Reverse / Fast).
Default is 0.
Inp_ExtInh
BOOL
Not Visible
Not Required
Input
1 = Inhibit External acquisition, 0 = Allow External acquisition.
Default is false.
Inp_HornInh
BOOL
Not Visible
Not Required
Input
1 = Inhibit audible alert, 0 = Alllow audible alert.
Default is false.
Inp_Reset
BOOL
Not Visible
Not Required
Input
1 = Reset Shed Latches and Cleared Alarms.
Default is false.
Cfg_AllowDisable
BOOL
Not Visible
Not Required
Input
1 = Allow Maintenance to disable alarms.
Default is true.
Cfg_AllowShelve
BOOL
Not Visible
Not Required
Input
1 = Allow Operator to shelve alarms.
Default is true.
Cfg_eObjType
SINT
Not Visible
Not Required
Input
Type of Motor:
0 = single-speed,
1 = reversing,
2 = 2-speed (enumeration).
Default is 0.
Cfg_HasStart1
BOOL
Not Visible
Not Required
Input
1 = Motor Start1 (Forward / Slow) Command enabled and visible, 0 = Motor Start1 Command not allowed.
Default is false.
Cfg_HasStart2
BOOL
Not Visible
Not Required
Input
1 = Motor Start2 (Reverse / Fast) Command enabled and visible, 0 = Motor Start2 Command not allowed.
Default is false.
Cfg_HasJog1
BOOL
Not Visible
Not Required
Input
1 = Motor Jog1 (Forward / Slow) Command enabled and visible, 0 = Motor Jog1 Command not allowed.
Default is false.
Cfg_HasJog2
BOOL
Not Visible
Not Required
Input
1 = Motor Jog2 (Reverse / Fast) Command enabled and visible, 0 = Motor Jog2 Command not allowed.
Default is false.
Cfg_HasStop
BOOL
Not Visible
Not Required
Input
1 = Motor Stop Command enabled and visible, 0 = Instruction has no control, only monitors Motor.
Default is true.
Cfg_AllowLocal
BOOL
Not Visible
Not Required
Input
1 = Allow Local Start/Stop without alarm, 0 = Start/Stop by command only.
Default is false.
Cfg_HasRunFdbk
BOOL
Not Visible
Not Required
Input
1 = Motor provides feedback signal when running.
Default is false.
Cfg_UseRunFdbk
BOOL
Not Visible
Not Required
Input
1 = Motor run feedback should be used for failure checking.
Default is false.
Cfg_HasDvcObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI a Device (e.g., overload relay) object is connected.
Default is false.
Cfg_Has1PermObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an object is connected to Inp_1Perm inputs.
Default is false.
Cfg_Has2PermObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an object is connected to Inp_2Perm inputs.
Default is false.
Cfg_HasIntlkObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an object is connected to Inp_Intlk inputs.
Default is false.
Cfg_HasResInhObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI a Restart Inhibit object is connected.
Default is false.
Cfg_HasRunTimeObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI a Run Time / Starts object is connected.
Default is false.
Cfg_HasMoreObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an object with more info is available.
Default is false.
Cfg_OperStopPrio
BOOL
Not Visible
Not Required
Input
1 = OCmd_Stop accepted any time;
0 = OCmd_Stop accepted only when Oper is selected.
Default is false.
Cfg_ExtStopPrio
BOOL
Not Visible
Not Required
Input
1 = XCmd_Stop accepted any time; 0 = XCmd_Stop accepted only when Ext is selected.
Default is false.
Cfg_OCmdResets
BOOL
Not Visible
Not Required
Input
1 = Any Motor OCmd resets shed latches and cleared alarms; 0 = OCmdReset is required.
Default is false.
Cfg_XCmdResets
BOOL
Not Visible
Not Required
Input
1 = Any Motor XCmd resets shed latches and cleared alarms; 0 = XCmdReset is required.
Default is false.
Cfg_OvrdPermIntlk
BOOL
Not Visible
Not Required
Input
1 = Override ignores Bypassable Perm/ Intlk; 0 = Override uses all Perm/Intlk.
Default is false.
Cfg_ShedOnFailToStart
BOOL
Not Visible
Not Required
Input
1 = Stop Motor and Alarm on Fail to Start; 0 = Alarm only on Fail to Start.
Default is true.
Cfg_ShedOnIOFault
BOOL
Not Visible
Not Required
Input
1 = Stop Motor and Alarm on I/O Fault; 0 = Alarm only on I/O Fault.
Default is true.
Cfg_HasOper
BOOL
Not Visible
Not Required
Input
1 = Operator (unlocked) exists, can be selected.
Default is true.
Cfg_HasOperLocked
BOOL
Not Visible
Not Required
Input
1 = Operator Locked exists, can be selected.
Default is true.
Cfg_HasProg
BOOL
Not Visible
Not Required
Input
1 = Program (unlocked) exists, can be selected.
Default is true.
Cfg_HasProgLocked
BOOL
Not Visible
Not Required
Input
1 = Program Locked exists, can be selected.
Default is true.
Cfg_HasExt
BOOL
Not Visible
Not Required
Input
1 = External exists, can be selected.
Default is false.
Cfg_HasMaint
BOOL
Not Visible
Not Required
Input
1 = Maintenance exists, can be selected.
Default is true.
Cfg_HasMaintOoS
BOOL
Not Visible
Not Required
Input
1 = Maintenance Out of Service exists, can be selected.
Default is true.
Cfg_OvrdOverLock
BOOL
Not Visible
Not Required
Input
1 = Override supersedes Program/Operator Lock, 0 = Don't override Lock.
Default is true.
Cfg_ExtOverLock
BOOL
Not Visible
Not Required
Input
1 = External supersedes Program/Operator Lock, 0 = Don't override Lock.
Default is false.
Cfg_ProgPwrUp
BOOL
Not Visible
Not Required
Input
1 = Power up to Program, 0 = Power up to Operator.
Default is false.
Cfg_ProgNormal
BOOL
Not Visible
Not Required
Input
Normal Source: 1 = Program if no requests; 0 = Operator if no requests.
Default is false.
Cfg_PCmdPriority
BOOL
Not Visible
Not Required
Input
Command priority. 1 = Program commands win, 0 = Operator commands win.
Default is false.
Cfg_PCmdProgAsLevel
BOOL
Not Visible
Not Required
Input
1 = PCmd_Prog used as Level (1 = Acquire, 0 = Release).
Default is false.
Cfg_PCmdLockAsLevel
BOOL
Not Visible
Not Required
Input
1 = PCmd_Lock used as a Level (1 = Lock, 0 = Unlock).
Default is false.
Cfg_ExtAcqAsLevel
BOOL
Not Visible
Not Required
Input
1 = XCmd_Acq used as Level (1 = Acquire, 0 = Release).
Default is false.
Cfg_PauseTime
REAL
Not Visible
Not Required
Input
Delay in seconds with contactors open when changing speed or direction. Valid = 0.0 to 2147483.0 seconds.
Default is 3.0.
Cfg_StartHornTime
REAL
Not Visible
Not Required
Input
Time in seconds to sound audible on commanded start. Valid = 0.0 to 1000.0 seconds, 0.0 = disabled.
Default is 0.0.
Cfg_VirtualFdbkTime
REAL
Not Visible
Not Required
Input
Time in seconds to echo run feedback when Virtualized. Valid = 0.0 to 2147483.0 seconds.
Default is 10.0.
Cfg_FailToStartTime
REAL
Not Visible
Not Required
Input
Time in seconds after Start to receive Run Feedback before Fault. Valid = 0.0 to 2147483.0 seconds.
Default is 15.0.
Cfg_FailToStopTime
REAL
Not Visible
Not Required
Input
Time in seconds after Stop to drop Run Feedback before Fault. Valid = 0.0 to 2147483,0 seconds.
Default is 15.0.
Cfg_ResetPulseTime
REAL
Not Visible
Not Required
Input
Time in seconds to pulse Out_Reset to clear Motor fault. Valid = 0.0 to 2147483.0 seconds.
Default is 2.0.
Cfg_MaxJogTime
REAL
Not Visible
Not Required
Input
Maximum jog time in seconds. Valid = 0.0 to 2147483.0 seconds, 0.0 = unlimited).
Default is 0.0.
Cfg_eKeepStart
SINT
Not Visible
Not Required
Input
Ownership of Start commands (enumeration):
0 = follows CmdSrc,
1 = Operator,
2 = Program,
3 = External.
Default is 0.
Cfg_eKeepJog
SINT
Not Visible
Not Required
Input
Ownership of Jog commands (enumeration):
0 = follows CmdSrc,
1 = Operator,
3 = External.
Default is 0.
Cfg_CnfrmReqd
SINT
Not Visible
Not Required
Input
Operator Command Confirmation Required. Represents the type of command confirmation required.
0 = None,
1 = Command confirmation required,
2 = Performer e-signature required,
3 = Performer and approver e-signature required.
Default is 0.
Cfg_HasHistTrend
SINT
Not Visible
Not Required
Input
Has Historical Trend. This enables navigation to the Device Historical Trend Faceplate from the HMI.
0 = No external historical trend,
1 = Datalog historical trend,
2 = Historian historical trend.
Default is 0.
PSet_Owner
DINT
Not Visible
Not Required
Input
Program owner request ID (non-zero) or release (zero).
Default is 0.
PCmd_Virtual
BOOL
Not Visible
Not Required
Input
Program command to select Virtual (simulated) device operation. The instruction clears this operand automatically.
Default is false.
PCmd_Physical
BOOL
Not Visible
Not Required
Input
Program command to select Physical device operation (not simulated). The instruction clears this operand automatically.
Default is false.
PCmd_Start1
BOOL
Not Visible
Not Required
Input
Program command to Start Motor Forward / Slow. The instruction clears this operand automatically.
Default is false.
PCmd_Start2
BOOL
Not Visible
Not Required
Input
Program command to Start Motor Reverse / Fast. The instruction clears this operand automatically.
Default is false.
PCmd_Stop
BOOL
Not Visible
Not Required
Input
Program command to Stop Motor. The instruction clears this operand automatically.
Default is false.
PCmd_Prog
BOOL
Not Visible
Not Required
Input
Program command to select Program (Operator to Program). The instruction clears this operand automatically if Cfg_PCmdProgAsLevel = 0.
Default is false.
PCmd_Oper
BOOL
Not Visible
Not Required
Input
Program command to select Operator (Program to Operator). The instruction clears this operand automatically.
Default is false.
PCmd_Lock
BOOL
Not Visible
Not Required
Input
Program command to lock Program (disallow Operator). The instruction clears this operand automatically if Cfg_PCmdLockAsLevel = 0.
Default is false.
PCmd_Unlock
BOOL
Not Visible
Not Required
Input
Program command to unlock Program (allow Operator to acquire). The instruction clears this operand automatically.
Default is false.
PCmd_Normal
BOOL
Not Visible
Not Required
Input
Program command to select Normal command source (Operator or Program). The instruction clears this operand automatically.
Default is false.
PCmd_Reset
BOOL
Not Visible
Not Required
Input
Program command to reset all alarms and latched shed conditions requiring reset. The instruction clears this operand automatically.
Default is false.
MCmd_Rel
BOOL
Not Visible
Not Required
Input
Maintenance command to release ownership (Maintenance to Operator/Program/External/Override). The instruction clears this operand automatically.
Default is false.
OCmd_Unlock
BOOL
Not Visible
Not Required
Input
Operator command to unlock / release (allow Program to acquire) ownership. The instruction clears this operand automatically.
Default is false.
XCmd_Start1
BOOL
Not Visible
Not Required
Input
External command to Start Motor Forward / Slow. The instruction clears this operand automatically.
Default is false.
XCmd_Start2
BOOL
Not Visible
Not Required
Input
External command to Start Motor Reverse / Fast. The instruction clears this operand automatically.
Default is false.
XCmd_Stop
BOOL
Not Visible
Not Required
Input
External command to Stop Motor. The instruction clears this operand automatically.
Default is false.
XCmd_Jog1
BOOL
Not Visible
Not Required
Input
External command to Jog Motor Forward / Slow. The instruction clears this operand automatically if max jog time is reached.
Default is false.
XCmd_Jog2
BOOL
Not Visible
Not Required
Input
External command to Jog Motor Reverse / Fast. The instruction clears this operand automatically if max jog time is reached.
Default is false.
XCmd_Acq
BOOL
Not Visible
Not Required
Input
External command to acquire ownership (Operator/Program/Override/Maintenance to External). The instruction clears this operand automatically if Cfg_ExtAcqAsLevel = 0.
Default is false.
XCmd_Rel
BOOL
Not Visible
Not Required
Input
External command to release ownership if Cfg_ExtAcqAsLevel = 0 (External to Operator/Program/Override/Maintenance). The instruction clears this operand automatically.
Default is false.
XCmd_Reset
BOOL
Not Visible
Not Required
Input
External command to clear shed latches and cleared alarms. The instruction clears this operand automatically.
Default is false.
XCmd_ResetAckAll
BOOL
Not Visible
Not Required
Input
External command to acknowledge and reset all alarms and latched shed conditions. The instruction clears this operand automatically.
Default is false.
Public Output Members
Data Type
FBD Default Visibility
FBD Wiring required
Usage
Description
EnableOut
BOOL
Not Visible
Not Required
Output
Enable Output - System Defined Parameter
Out_Run1Data
BOOL
Not Visible
Not Required
Output
1=Start/Run Motor Forward or Slow, 0=Stop Motor (for held starter type).
Out_Run2Data
BOOL
Not Visible
Not Required
Output
1=Start/Run Motor Reverse or Fast, 0=Stop Motor (for held starter type).
Out_Start1Data
BOOL
Not Visible
Not Required
Output
1=Start Motor Forward or Slow, 0=Motor left in current state.
Out_Start2Data
BOOL
Not Visible
Not Required
Output
1=Start Motor Reverse or Fast, 0=Motor left in current state.
Out_StopData
BOOL
Not Visible
Not Required
Output
1=Stop Motor, 0=Motor left in current state.
Out_ClearFaultData
BOOL
Not Visible
Not Required
Output
1=Attempt to clear Fault on intelligent motor controller.
Out_HornData
BOOL
Not Visible
Not Required
Output
1 = Sound audible prior to commanded motor start.
Out_Reset
BOOL
Not Visible
Not Required
Output
1 = Reset command has been received and accepted.
Out_OwnerSts
DINT
Not Visible
Not Required
Output
Status of command source, owner command handshake and ready status.
0 = None,
.10 = Operator Lock,
.11 = Operator Unlock,
.12 = Program Lock,
.13 = Program Unlock,
.14 = Acquire Maintenance,
.15 = Release Maintenance,
.16 = Acquire External,
.17 = Release External,
.18 = Has Maintenance,
.19 = External Override Lock,
.20 = Has External,
.21 = Has Operator,
.22 = Has Operator Locked,
.23 = Has Program,
.24 = Has Program Locked,
.29 = Echo,
.30 = Not Ready.
Sts_Initialized
BOOL
Not Visible
Not Required
Output
1 = Instruction is initialized. Use Inp_InitializeReq to reinitialize.
Sts_Stopped
BOOL
Visible
Not Required
Output
1 = Motor requested to stop and is confirmed stopped.
Sts_Starting1
BOOL
Visible
Not Required
Output
1 = Motor requested to run forward and awaiting run feedback.
Sts_Starting2
BOOL
Not Visible
Not Required
Output
1 = Motor requested to run reverse and awaiting run feedback.
Sts_Running1
BOOL
Visible
Not Required
Output
1 = Motor requested to run and is confirmed running forward.
Sts_Running2
BOOL
Not Visible
Not Required
Output
1 = Motor requested to run and is confirmed running reverse.
Sts_Stopping
BOOL
Visible
Not Required
Output
1 = Motor running / jogging requested to stop and awaiting stopped feedback.
Sts_Jogging1
BOOL
Visible
Not Required
Output
1 = Motor requested to Jog Forward.
Sts_Jogging2
BOOL
Not Visible
Not Required
Output
1 = Motor requested to Jog Reverse.
Sts_Horn
BOOL
Not Visible
Not Required
Output
1 = Motor Audible Alert (Horn) is Active.
Sts_NotReady
BOOL
Not Visible
Not Required
Output
1 = Motor is Not Ready (cannot be started) Check alarms, stops, faults.
Sts_Alarm
BOOL
Not Visible
Not Required
Output
1 = Intelligent motor controller has an Alarm (see controller display or manual).
Sts_Virtual
BOOL
Not Visible
Not Required
Output
1 = The instruction treats the Motor as virtual. The instruction acts as normal but the output is kept de-energized; 0 = The instruction operates the Motor normally. Sts_Virtual is a copy of Sts_Virtual.
SrcQ_IO
SINT
Not Visible
Not Required
Output
Source and quality of primary input or output (enumerated):
0=Good, live, confirmed good
1=Good, live, assumed good
2=Good, no feedback, assumed good
8=Test, virtualized
9=Test, loopback
10=Test, manually entered
16=Uncertain, live, off-spec
17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good
20=Uncertain, using replacement value
32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration
SrcQ
SINT
Not Visible
Not Required
Output
Source and quality of primary value or status (enumerated):
0=Good, live, confirmed good
1=Good, live, assumed good
2=Good, no feedback, assumed good
8=Test, virtualized
9=Test, loopback
10=Test, manually entered
16=Uncertain, live, off-spec
17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good
20=Uncertain, using replacement value
32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration
Sts_eCmd
SINT
Not Visible
Not Required
Output
Motor Command:
0 = None,
1 = Stop,
2 = Start 1,
3 = Start 2,
4 = Jog 1,
5 = Jog 2.
Sts_eFdbk
SINT
Not Visible
Not Required
Output
Motor Feedback Status:
0 = Stopped,
1 = Running 1 (forward, slow),
2 = Running 2 (reverse, fast),
3 = Invalid (both feedbacks received)
Sts_eSts
SINT
Not Visible
Not Required
Output
Motor Status:
0 = Unknown,
1 = Stopped,
2 = Running 1,
3 = Running 2,
4 = Starting 1,
5 = Starting 2,
6 = Jogging 1,
7 = Jogging 2,
8 = Stopping,
14 = Horn,
15 = Out of Service.
Sts_eFault
SINT
Not Visible
Not Required
Output
Motor Fault Status:
0 = None,
15 = Interlock Trip,
16 = Fail to Start,
17 = Fail to Stop,
18 = Motor Fault,
32 = I/O Fault,
34 = Config Error.
Sts_eNotify
SINT
Not Visible
Not Required
Output
All alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyAll
SINT
Not Visible
Not Required
Output
All alarm status enumerated values including related objects:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyIOFault
SINT
Not Visible
Not Required
Output
IOFault alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyFailToStart
SINT
Not Visible
Not Required
Output
Fail to Start alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyFailToStop
SINT
Not Visible
Not Required
Output
Fail to Stop alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyIntlkTrip
SINT
Not Visible
Not Required
Output
IntlkTrip alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyMotorFault
SINT
Not Visible
Not Required
Output
Motor Fault alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged
Sts_UnackAlmCount
DINT
Not Visible
Not Required
Output
Count of unacknowledged alarms.
Sts_eFaultCode
DINT
Not Visible
Not Required
Output
First Trip Code after reset. See Motor manual or Power Discrete Object for description.
Sts_eSrc
INT
Not Visible
Not Required
Output
The current command source enumerated values:
0 = Logic not in use,
4 = Hand,
8 = Maintenance,
16 = Override,
32 = Program,
33 = Program locked,
34 = Program by default (Normal),
64 = Operator,
65 = Operator locked,
66 = Operator by default (Normal),
128 = Maintenance Out of Service,
129 = Programmed Out of Service (rung false),
256 = External.
Sts_bSrc
INT
Not Visible
Not Required
Output
Active selection bitmap (for HMI totem pole with command source request selection):
Sts_bSrc.0: Hand,
Sts_bSrc.1: Programmed Out of Service (rung false),
Sts_bSrc.2: Maintenance Out of Service,
Sts_bSrc.3: Maintenance,
Sts_bSrc.4: Override,
Sts_bSrc.5: External,
Sts_bSrc.6: Program locked,
Sts_bSrc.7: Program,
Sts_bSrc.8: Operator locked,
Sts_bSrc.9: Operator.
Sts_Available
BOOL
Not Visible
Not Required
Output
1 = Motor has been acquired by Program and is now available for start/stop control.
Sts_IntlkAvailable
BOOL
Not Visible
Not Required
Output
1 = Motor can be acquired by Program and is available for start/stop control when interlocks are OK.
Sts_Bypass
BOOL
Not Visible
Not Required
Output
1 = Bypassable interlocks are bypassed.
Sts_BypActive
BOOL
Visible
Not Required
Output
1 = Interlock bypassing active (bypassed or maintenance).
Sts_MaintByp
BOOL
Not Visible
Not Required
Output
1 = Device has a maintenance bypass function active.
Sts_NotRdy
BOOL
Not Visible
Not Required
Output
1 = Device is not ready, see detail bits (Sts_Nrdyxxx) for reason.
Sts_NrdyCfgErr
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Configuration error.
Sts_NrdyDvcNotReady
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Intelligent motor controller Not Ready.
Sts_NrdyFail
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Device failure (Shed requires Reset).
Sts_NrdyIntlk
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Interlock not OK.
Sts_NrdyIOFault
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: IO Fault (Shed requires Reset).
Sts_NrdyOoS
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Device disabled by Maintenance.
Sts_Nrdy1Perm
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Permissive 1 not OK.
Sts_Nrdy2Perm
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Permissive 2 not OK.
Sts_NrdyPrioStop
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Operator or External priority Stop command requires reset.
Sts_NrdyTrip
BOOL
Not Visible
Not Required
Output
1 = Device is not ready: Device Tripped, intelligent motor controller fault requires Reset.
Sts_Err
BOOL
Visible
Not Required
Output
1 = Error in configuration: See detail bits (Sts_Errxxx) for reason.
Sts_ErrAlm
BOOL
Not Visible
Not Required
Output
1 = Error in Logix tag-based alarm settings.
Sts_ErrPauseTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Invalid Pause time: use 0 to 2147483.
Sts_ErrVirtualFdbkTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Virtual feedback echo time: use 0 to 2147483.
Sts_ErrFailToStartTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Fail to Start timer preset: use 0 to 2147483.
Sts_ErrFailToStopTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Fail to Stop timer preset: use 0 to 2147483.
Sts_ErrResetPulseTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Reset Pulse timer preset: use 0 to 2147483.
Sts_ErrMaxJogTime
BOOL
Not Visible
Not Required
Output
1 = Error in Config: Maximum Jog Time timer preset: use 0 to 2147483.
Sts_Hand
BOOL
Visible
Not Required
Output
1 = Hand is selected (supersedes OoS, Maintenance, Override, External, Program, Operator).
Sts_OoS
BOOL
Visible
Not Required
Output
1 = Out of Service is selected (supersedes Maintenance, Override, External, Program, Operator).
Sts_Maint
BOOL
Visible
Not Required
Output
1 = Maintenance is selected (supersedes Override, External, Program, Operator).
Sts_Ovrd
BOOL
Visible
Not Required
Output
1 = Override is selected (supersedes External, Program, Operator).
Sts_Ext
BOOL
Visible
Not Required
Output
1 = External is selected (supersedes Program and Operator).
Sts_Prog
BOOL
Visible
Not Required
Output
1 = Program is selected.
Sts_ProgLocked
BOOL
Not Visible
Not Required
Output
1 = Program is selected and Locked.
Sts_Oper
BOOL
Visible
Not Required
Output
1 = Operator is selected.
Sts_OperLocked
BOOL
Not Visible
Not Required
Output
1 = Operator is selected and Locked.
Sts_ProgOperSel
BOOL
Not Visible
Not Required
Output
Program/Operator selection (latch) state: 1 = Program, 0 = Operator.
Sts_ProgOperLock
BOOL
Visible
Not Required
Output
Program/Operator lock (latch) state, 1 = Locked, 0 = Unlocked.
Sts_Normal
BOOL
Not Visible
Not Required
Output
1 = Selection equals the Normal (Program or Operator).
Sts_ExtReqInh
BOOL
Not Visible
Not Required
Output
1 = External request inhibited, cannot get to External from current state.
Sts_ProgReqInh
BOOL
Not Visible
Not Required
Output
1 = Program request inhibited, cannot get to Program from current state.
Sts_MAcqRcvd
BOOL
Not Visible
Not Required
Output
1 = Program request inhibited, cannot get to Program from current state.
Sts_CmdConflict
BOOL
Not Visible
Not Required
Output
1 = Conflicting commands received this scan.
Sts_Alm
BOOL
Not Visible
Not Required
Output
1 = An alarm is active.
Sts_AlmInh
BOOL
Not Visible
Not Required
Output
1 = An alarm is shelved or disabled.
Sts_IOFault
BOOL
Not Visible
Not Required
Output
I/O Fault status: 1 = Bad, 0 = OK. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Alarm elements can be accessed as follows: PMTRTag.@Alarms.Alm_IOFault.AlarmElement.
Sts_FailToStart
BOOL
Not Visible
Not Required
Output
1 = Motor failed to Start. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Alarm elements can be accessed as follows: PMTRTag.@Alarms.Alm_FailToStart.AlarmElement.
Sts_FailToStop
BOOL
Not Visible
Not Required
Output
1 = Motor failed to Stop. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Alarm elements can be accessed as follows: PMTRTag.@Alarms.Alm_FailToStop.AlarmElement.
Sts_IntlkTrip
BOOL
Not Visible
Not Required
Output
1 = Motor stopped by an interlock Not OK. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Alarm elements can be accessed as follows: PMTRTag.@Alarms.Alm_IntlkTrip.AlarmElement.
Sts_MotorFault
BOOL
Not Visible
Not Required
Output
1 = Intelligent Motor Control Fault. See control device display or user manual.
Sts_RdyAck
BOOL
Not Visible
Not Required
Output
1 = An alarm is ready to be acknowledged.
Sts_RdyReset
BOOL
Not Visible
Not Required
Output
1 = A latched alarm or shed condition is ready to be reset.
XRdy_Acq
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Acq, enable HMI button.
XRdy_Rel
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Rel, enable HMI button.
XRdy_Start1
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Start1, enable button.
XRdy_Start2
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Start2, enable button.
XRdy_Jog1
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Jog1, enable button.
XRdy_Jog2
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Jog2, enable button.
XRdy_Stop
BOOL
Visible
Not Required
Output
1 = Ready for XCmd_Stop, enable button.
XRdy_Reset
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Reset, enable button.
XRdy_ResetAckAll
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_ResetAckAll, enable button.
Val_Owner
DINT
Not Visible
Not Required
Output
Current object owner ID (0 = not owned).
Private Input Members
Data Type
Description
CmdSrc
P_COMMAND_SOURCE
Control or Command Source Selection.
MCmd_Acq
BOOL
Maintenance command to acquire ownership (Operator/Program/External/Override to Maintenance). The instruction clears this operand automatically.
Default is false.
MCmd_Bypass
BOOL
Maintenance command to bypass all bypassable interlocks and permissives. The instruction clears this operand automatically.
Default is false.
MCmd_Check
BOOL
Maintenance command to check (not bypass) all interlocks and permissives. The instruction clears this operand automatically.
Default is false.
MCmd_IS
BOOL
Maintenance command to select In Service. The instruction clears this operand automatically.
Default is false.
MCmd_OoS
BOOL
Maintenance command to select Out of Service. The instruction clears this operand automatically.
Default is false.
MCmd_Physical
BOOL
Maintenance command to select Physical device operation (not simulated). The instruction clears this operand automatically.
Default is false.
MCmd_Virtual
BOOL
Maintenance command to select Virtual (simulated) device operation. The instruction clears this operand automatically.
Default is false.
OCmd_Jog1
BOOL
Operator command to Jog Motor Forward / Slow. The instruction clears this operand automatically if max jog time is reached.
Default is false.
OCmd_Jog2
BOOL
Operator command to Jog Motor Reverse / Fast. The instruction clears this operand automatically if max jog time is reached.
Default is false.
OCmd_Lock
BOOL
Operator command to lock Operator (disallow Program). The instruction clears this operand automatically.
Default is false.
OCmd_Normal
BOOL
Operator command to select Normal (Operator or Program). The instruction clears this operand automatically.
Default is false.
OCmd_Oper
BOOL
Operator command to select Operator (Program to Operator). The instruction clears this operand automatically.
Default is false.
OCmd_Prog
BOOL
Operator command to select Program (Operator to Program). The instruction clears this operand automatically.
Default is false.
OCmd_Reset
BOOL
Operator command to reset all alarms and latched shed conditions. The instruction clears this operand automatically.
Default is false.
OCmd_ResetAckAll
BOOL
Operator command to acknowledge and reset all alarms and latched shed conditions. The use of OCmd_ResetAckAll is restricted to HMI. The instruction clears this operand automatically.
Default is false.
OCmd_Start1
BOOL
Operator command to Start Motor Forward / Slow. The instruction clears this operand automatically.
Default is false.
OCmd_Start2
BOOL
Operator command to Start Motor Reverse / Fast. The instruction clears this operand automatically.
Default is false.
OCmd_Stop
BOOL
Operator command to Stop Motor. The instruction clears this operand automatically.
Default is false.
Private Output Members
Data Type
Description
HMI_BusObjIndex
DINT
This object's index in the bus array, for use by HMI display.
Default is 0.
MRdy_Acq
BOOL
1 = Ready for MCmd_Acq, enable HMI button.
MRdy_Bypass
BOOL
1 = Ready for MCmd_Bypass, enable HMI button.
MRdy_Check
BOOL
1 = Ready for MCmd_Check, enable HMI button.
MRdy_IS
BOOL
1 = Ready for MCmd_IS, enable HMI button.
MRdy_OoS
BOOL
1 = Ready for MCmd_OoS, enable HMI button.
MRdy_Physical
BOOL
1 = Ready for MCmd_Physical, enable HMI button.
MRdy_Rel
BOOL
1 = Ready for MCmd_Rel, enable HMI button.
MRdy_Virtual
BOOL
1 = Ready for MCmd_Virtual, enable HMI button.
ORdy_Jog1
BOOL
1 = Ready for OCmd_Jog1, enable HMI button.
ORdy_Jog2
BOOL
1 = Ready for OCmd_Jog2, enable HMI button.
ORdy_Lock
BOOL
1 = Ready for OCmd_Lock, enable HMI button.
ORdy_Normal
BOOL
1 = Ready for OCmd_Normal, enable HMI button.
ORdy_Oper
BOOL
1 = Ready for OCmd_Oper, enable HMI button.
ORdy_Prog
BOOL
1 = Ready for OCmd_Prog, enable HMI button.
ORdy_Reset
BOOL
1 = A latched alarm or shed condition is ready to be reset.
ORdy_ResetAckAll
BOOL
1 = A latched alarm or shed condition is ready to be reset or acknowledged.
ORdy_Start1
BOOL
1 = Ready for OCmd_Start1, enable HMI button.
ORdy_Start2
BOOL
1 = Ready for OCmd_Start2, enable HMI button.
ORdy_Stop
BOOL
1 = Ready for OCmd_Stop, enable HMI button.
ORdy_Unlock
BOOL
1 = Ready for OCmd_Unlock, enable HMI button.
Sts_FaultDesc
STRING
Description of intelligent motor controller fault, lookup from last fault code.
Public InOut Members
Data Type
FBD Default Visibility
FBD Wiring required
Usage
Description
Ref_Ctrl_Set
RAC_ITF_DVC_PWRDISCRETE_SET
Visible
Required
InOut
Discrete Power Automation Device Object Settings Interface.
Ref_Ctrl_Cmd
RAC_ITF_DVC_PWRDISCRETE_CMD
Visible
Required
InOut
Discrete Power Automation Device Object Command Interface.
Ref_Ctrl_Sts
RAC_ITF_DVC_PWRDISCRETE_STS
Visible
Required
InOut
Discrete Power Automation Device Object Status Interface.
BusObj
BUS_OBJ
Visible
Required
InOut
Bus component
Ref_FaultCodeList
RAC_CODE_DESCRIPTION[1]
Visible
Required
InOut
Fault Code to Fault Description lookup table for intelligent motor controller.
RAC_ITF_DVC_PWRDISCRETE_SET Structure
The RAC_ITF_DVC_PWRDISCRETE_SET structure is the first of three structures exchanged with the associated Power Discrete Device Object to interface with the intelligent motor control device. This structure handles settings, such as the Command Inhibit, sent to the motor controller.
This parameter is used to link the instruction to an external tag that contains necessary data for the instruction to operate. The external tag must be of the data type shown, or may be NULL. If NULL, other pins on the instruction are used to link the necessary data.
Members
Data Type
Description
InhibitCmd
BOOL
1=Inhibit user Commands from external sources; 0=AllowControl
InhibitSet
BOOL
1=Inhibit user Settings from external sources; 0=Allow
RAC_ITF_DVC_PWRDISCRETE_CMD Structure
The RAC_ITF_DVC_PWRDISCRETE_CMD structure is the second of three structures exchanged with the associated Power Discrete Device Object to interface with the intelligent motor control device. This structure handles commands, such as the start, stop, direction, and speed, sent to the motor controller. It is an InOut parameter configured as optional (May Be Null).
This parameter is used to link the instruction to an external tag that contains necessary data for the instruction to operate. The external tag must be of the data type shown, or may be NULL. If NULL, other pins on the instruction are used to link the necessary data.
Members
Data Type
Description
bCmd
INT
Commands (Bit Overlay)
Physical
BOOL
Operate as a physical device
Virtual
BOOL
Operate as a virtual device
ResetWarn
BOOL
Reset Warning Status
ResetFault
BOOL
Reset Fault Status
Activate
BOOL
Activate Output Power Structure
Deactivate
BOOL
DeActivate Output Power Structure
CmdDir
BOOL
Command Direction; 0=Forward, 1=Reverse
Jog
BOOL
Jog Command
Fast
BOOL
Fast speed of a two-speed device
Slow
BOOL
Slow Speed of a two-speed device
RAC_ITF_DVC_PWRDISCRETE_STS Structure
The RAC_ITF_DVC_PWRDISCRETE_STS structure is the third of three structures exchanged with the associated Power Discrete Device Object to interface with the intelligent motor control device. This structure handles status, such as the run feedback, connection status, commanded and actual direction, received from the motor controller. It is an InOut parameter configured as optional (May Be Null).
This parameter is used to link the instruction to an external tag that contains necessary data for the instruction to operate. The external tag must be of the data type shown, or may be NULL. If NULL, other pins on the instruction are used to link the necessary data.
Members
Data Type
Description
eState
DINT
Enumerated state value:
0=Unused
1=Initializing
2=Disconnected
3=Disconnecting,
4=Connecting,
5=Idle,
6=Configuring,
7=Available
FirstWarning
RAC_UDT_EVENT
First Warning
FirstFault
RAC_UDT_EVENT
First Fault
eCmdFail
DINT
Enumerated command failure code
bSts
INT
Status (Bit Overlay)
Physical
BOOL
1=Operating as a physical device
Virtual
BOOL
1=Operating as a virtual device
Connected
BOOL
Connected Status
Available
BOOL
Available Status
Warning
BOOL
Warning
Faulted
BOOL
Faulted
Ready
BOOL
1=Device is active (Power Structure Active)
Active
BOOL
1=Device is active (Power Structure Active)
CmdDir
BOOL
Command direction; 1=Reverse, 0=Forward
ActDir
BOOL
Actual direction; 1=Reverse, 0=Forward
CmdSpd
BOOL
1 = Motor is Commanded to run fast 0 = slow
Fast
BOOL
Fast speed selected (two-speed device)
Slow
BOOL
Slow speed selected (two-speed device)
BUS_OBJ Structure
The BUS_OBJ structure is used to link the motor to other devices and instructions in a complex control strategy, typically into a hierarchy. A Bus Object rolls up status and alarm information from lower level devices to higher level control and fans out commands from higher level control to lower level devices, and items link to the bus by referencing a single member of the BUS_OBJ array associated with the bus.
This parameter is used to link the instruction to an external tag that contains necessary data for the instruction to operate. The external tag must be of the data type shown, or may be NULL. If NULL, the Bus functions of this instruction are not available.
Members
Data Type
Description
Inp_Cmd
DINT
Input to assert commands
Out_Cmd
DINT
Resultant commands
Inp_CmdLLH
DINT
Input for level normally high commands
Out_CmdLLH
DINT
Resultant line level high commands
Inp_Sts
DINT
Input to assert status
Out_Sts
DINT
Resultant status
Inp_CmdAck
DINT
Input to assert a command acknowledgement
Out_CmdAck
DINT
Resultant command acknowledgements
Inp_SeverityMax
DINT
Input: maximum alarm severity
Out_SeverityMax
DINT
Resultant of maximum alarm severity
Cfg_CmdMask
DINT
Propagation mask for commands
Cfg_CmdLLHMask
DINT
Propagation mask for line level high commands
Cfg_StsMask
DINT
Propagation mask for status
Ref_Index
DINT
Bus array index
RAC_CODE_DESCRIPTION[x] Structure
The RAC_CODE_DESCRIPTION[x] structure is an array of intelligent motor controller fault code number and fault code description pairs, used as a lookup table. The instruction searches the table for the fault code received from the motor controller and displays the corresponding fault description text.
This parameter is used to link the instruction to an external tag that contains necessary data for the instruction to operate. The external tag must be of the data type shown, or may be NULL. If NULL, the fault code lookup function is not performed. Fault descriptions will only be shown if provided through the Device Object Status interface.
Members
Data Type
Description
Code
DINT
Code for which to look up Description
Desc
STRING
Description for given Code
RAC_EVENTStructure
RAC_EVENTstructures are used by the FirstFault and FirstWarning members in the RAC_ITF_DVC_PWRDISCRETE_STS structure. These items hold the event data received from the intelligent motor controller for the first fault and first warning records in the motor controller event history.
Members
Data Type
Description
Type
DINT
1 = Status
2 = Warning
3 = Fault
4 ...n = User
ID
DINT
User definable event ID
Category
DINT
User definable category (Electrical,Mechanical,Materials,Utility,etc.)
Action
DINT
User definable event action code
Value
DINT
User definable event value or fault code
Message
STRING
Event message text
EventTime_L
LINT
Timestamp
EventTime_D
DINT[7]
Timestamp (Y,M,D,h,m,s,us)
Alarms
Discrete Logix tag-based alarms are defined for these members.
Member
Alarm Name
Description
Sts_FailToStart
Alm_FailToStart
Motor failed to start within the allotted time when commanded to start
Sts_FailToStop
Alm_FailToStop
Motor failed to stop within the allotted time when commanded to stop
Sts_IntlkTrip
Alm_IntlkTrip
Motor stopped by an Interlock Not OK
Sts_IOFault
Alm_IOFault
Motor communication with controller failed
Sts_MotorFault
Alm_MotorFault
The motor controller is reporting it has a fault condition
Mark the alarm as used or unused and set standard configuration members of the discrete tag-based alarm. Use this format to access alarm elements:
Tag.@Alarms.AlarmName.AlarmElement
The PMTR instruction uses these alarms:
  • Raises the Fail to Start alarm when the motor is commanded to start but run feedback is not received within the configured failure time.
  • Raises the Fail to Stop alarm when the motor is commanded to stop but run feedback does not drop within the configured failure time.
  • Raises the Interlock Trip alarm when the motor is running and an interlock not-OK condition causes the motor to stop. If interlocks are not bypassed, a bypassable interlock or a non-bypassable interlock not-OK condition initiates an interlock trip. If interlocks are bypassed, only a non-bypassable interlock not-OK condition initiates an interlock trip.
  • Raises the I/O Fault alarm when I/O communication with the motor controller or other I/O device is lost. For the Power Discrete Device interface, this is detected when the Ref_Ctrl_Sts.Connected bit goes false (to 0). For the discrete signal interface, used when Ref_Ctrl_Sts is NULL, this is detected when Inp_IOFault goes true (to 1).
  • Raises the Motor Fault alarm when the motor controller reports a faulted condition. For the Power Discrete Device interface, this is detected when the Ref_Ctrl_Sts.Faulted bit goes true (to 1). For the discrete signal interface, which is used when Ref_Ctrl_Sts is NULL, this is detected when Inp_Faulted goes true (to 1).
Program, Operator, and External commands enable the Reset of latched alarms, and Reset & Acknowledge of all alarms of the instruction (Alarm Set) at the same time. This diagram shows how the commands interact with the PMTR instruction.
PMTR_alarminteraction
Operation
This diagram illustrates functionality of the PMTR instruction:
PMTR_functionality_v34
Operator command request confirmation
The PMTR instruction enables these operator command requests:
  • OCmd_Jog1
  • OCmd_Jog2
  • OCmd_Start1
  • OCmd_Start2
  • OCmd_Stop
Enforced security might require the request to be confirmed or canceled before the selected command executes. The instruction checks the security rules inspecting Cfg_CnfrmReqd. If Cfg_CnfrmReqd=0 no confirmation is required and the request executes immediately. If Cfg_CnfrmReqd=1 the instruction waits for confirmation OCmd_CmdCnfrm=1 and/or cancellation. For Cfg_CnfrmReqd=2 or 3, eSignature is needed before the confirmation and cancellation is enabled.
For more information on command sources, see
Process Motor (PMTR) Command Source
.
Virtualization
Use virtualization for instruction testing and operator training. Command to virtual operation using program command PCmd_Virtual or maintenance command MCmd_Virtual. After finishing virtual operation, use program command PCmd_Physical or maintenance command MCmd_Physical to return to normal physical device operation.
When Virtualization is active, the outputs of the PMTR instruction hold at 0, virtual feedback of a working device is provided, and I/O faults are ignored. The setting of Cfg_VirtualFdbkTime operand determines the time delay between a command to start or stop the device and the echo of the running or stopped status. Manipulate the instruction to operate as if a working motor is present.
Initialization
The instruction is normally initialized in the instruction first run. Request re-initialization by setting Inp_InitializeReq = 1. For proper initialization, when adding the instruction while performing an online edit of the code, make sure that Inp_InitializeReq = 1, the default value.
Configuration of Strings for HMI
Configure strings for HMI faceplates (
FactoryTalk View
) and for the
Logix Designer
configuration dialog box. The strings are set to extended properties of tag items.
  • Description
  • Label for graphic symbol
  • Display Library for HMI Faceplate call-up
  • Instruction name
  • Area name
  • URL link
  • More Information
  • Running 1 Text
  • Running 2 Text
  • Name of Fail to Start Alarm
  • Name of Fail to Stop Alarm
  • Name of Interlock Trip Alarm
  • Name of I/O Fault Alarm
  • Name of Motor Fault Alarm
Implementation
The PMTR instruction monitors and controls a discrete motor. The start, stop and jog commands to the motor can come from a variety of sources, determined by an embedded instance of PCMDSRC. Available command sources are:
  • Operator, through the HMI
  • Program, through logic connected to the block
  • External, through logic connected to the block
  • Override, through logic connected to the block
  • Maintenance, through the HMI
  • Out of Service
  • Hand (assumes the block has no control of the motor, so aligns with the actual motor status in order to achieve bumpless transfer from Hand back to one of the other command sources)
The PMTR instruction has two aspects, which can be kept by a particular command source whenever the command source selection is Operator, Program or External. Either or both of the aspects can be kept at any given time, or can follow the selection of the PCMDSRC. The aspects are:
  • Start1 and Start2 commands
  • Jog1 and Jog2 commands
The Jog commands cannot be kept by the Program command source.
The PMTR instruction supports virtualization. When selected to Virtual, the instruction provides status to the operator and other blocks as if a working motor were connected while keeping the outputs to the physical motor de-energized (zero). When selected to Physical, the instruction monitors and controls the physical motor device. Use Virtualization to provide off-process functional testing of higher-level control strategies or simulation for operator training.
The PMTR instruction supports interlocks, conditions that must be OK for the motor to run and which stop the motor if not OK, and permissives, conditions that must be OK for the motor to start but which are ignored once the motor is running. Bypassable permissives and interlocks can be bypassed for maintenance, while non-bypassble interlocks and permissives are always evaluated.
The PMTR instruction supports a bus for forwarding commands (fanout) and gathering status (rollup) in a hierarchy of objects. Refer to the Bus Object for more information on the commands and status (including alarm status) sent on the bus.
The PMTR instruction optionally supports the ability to look up the text to display for the most recent intelligent motor controller fault code, given a provided fault code lookup table. This table is an array of Code and Description pairs and is searched whenever the last fault code from the motor controller changes.
The PMTR instruction interface to the physical motor can be through a Power Discrete Device Object interface or by connecting individual motor controller signals to input and output pins of the instruction. Details on the Power Discrete Device Object interface are given below. Three interface tags are used, provided as InOut Parameters. These tags provide motor Settings, motor Commands, such as start forward, jog reverse and stop, and retrieve motor Status, such as connected, active (running), commanded direction and speed, actual direction and speed, warning, faulted, and extended motor controller warning and fault information.
PMTR Motor Settings: Ref_Ctrl_Set InOut Parameter (RAC_ITF_DVC_PWRDISCRETE_SET) Structure
Private Input Members
Data Type
Description
InhibitCmd
BOOL
1 = Inhibit user Commands from external sources; 0 = Allow control.
InhibitSet
BOOL
1 = Inhibit user Settings from external source, 0 = Allow.
PMTR Motor Commands: Ref_Ctrl_Cmd InOut Parameter (RAC_ITF_DVC_PWRDISCRETE_CMD) Structure
Private Input Members
Data Type
Description
bCmd
INT
Commands (bit overlay), consisting of:
Physical
BOOL
Operate as a Physical device
Virtual
BOOL
Operate as a Virtual device
ResetWarn
BOOL
Reset Warning status
ResetFault
BOOL
Reset Fault status
Activate
BOOL
Activate Output Power Structure (if speed reference is not zero, the motor will run)
Deactivate
BOOL
Deactivate Output Power Structure (motor will stop)
CmdDir
BOOL
Commanded Direction, 0 = Forward
Jog
BOOL
Jog Command
Fast
BOOL
Fast speed of a two-speed device
Slow
BOOL
Slow Speed of a two-speed device
PMTR Motor Status: Ref_Ctrl_Sts InOut Parameter (RAC_ITF_DVC_PWRDISCRETE_STS) Structure
Private Input Members
Data Type
Description
eState
DINT
Enumerated state value:
0 = unused,
1 = Initializing,
2 = Disconnected,
3 = Disconnecting,
4 = Connecting,
5 = Idle,
6 = Configuring,
7 = Available
FirstWarning
RAC_ITF_EVENT
First Warning, consisting of:
Type
DINT
1 = Status, 2 = Warning, 3 = Fault, 4 … n = User
ID
DINT
User definable event ID
Category
DINT
User definable category (electrical, mechanical, materials, utility, etc.)
Action
DINT
User definable event action code
Value
DINT
User definable event value or fault code
Message
STRING
Event message text
EventTime_L
LINT
Timestamp
EventTime_D
DINT[7]
Timestamp (Yr, Mo, Da, Hr, Min, Sec, Microsec)
FirstFault
RAC_ITF_EVENT
First Fault, consisting of:
Type
DINT
1 = Status, 2 = Warning, 3 = Fault, 4 … n = User
ID
DINT
User definable event ID
Category
DINT
User definable category (electrical, mechanical, materials, utility, etc.)
Action
DINT
User definable event action code
Value
DINT
User definable event value or fault code
Message
STRING
Event message text
EventTime_L
LINT
Timestamp
EventTime_D
DINT[7]
Timestamp (Yr, Mo, Da, Hr, Min, Sec, Microsec)
eCmdFail
DINT
Enumerated command failure code
bSts
INT
Status, consisting of:
Physical
BOOL
1 = Operating as a physical device
Virtual
BOOL
1 = Operating as a virtual device
Connected
BOOL
Connected status
Available
BOOL
Available status
Warning
BOOL
Device Warning
Faulted
BOOL
Device Faulted
Ready
BOOL
1 = Device is ready (can be activated)
Active
BOOL
1 = Device is active (power structure active, running)
CmdDir
BOOL
Commanded direction: 1 = reverse, 0 = forward
ActDir
BOOL
Actual direction (of rotation): 1 = reverse, 0 = forward
CmdSpd
BOOL
1 = Motor is Commanded to run fast 0 = slow
Fast
BOOL
Fast speed selected (two-speed device)
Slow
BOOL
Slow speed selected (two-speed device)
This illustration shows the relationship between a PMTR instance and its associated Power Discrete Device Object.
PMTR_PowerDiscrete
Monitor the PMTR Instruction
Use the operator faceplate from the PlantPAx library of Process objects for monitoring.
Affects Math Status Flags
No.
Major/Minor Faults
None specific to this instruction. See
Index Through Arrays
for array-indexing faults.
Execution
Ladder Diagram
Condition/State
Action Taken
Prescan
Any commands received before first scan are discarded. The motor is de-energized and treated as if it were commanded to stop.
Instruction first run
Any commands received before first scan are discarded. The motor state is evaluated and the instruction aligns with the current state of the motor, as if the Hand command source were selected.
Rung-condition-in is false
Handled the same as if the motor is taken Out of Service by command. The motor outputs are de-energized, and the motor Command Source is shown as Program Out of Service on the HMI. All alarms are cleared. The rung-condition-out continues as false.
Rung-condition-in is true
Set rung-condition-out to rung-condition-in.
The instruction executes.
Postscan
Rung-condition-out is cleared to false.
Function Block Diagram
Condition/State
Action Taken
Prescan
Any commands received before first scan are discarded. The motor is de-energized and treated as if it were commanded to stop.
Instruction first run
Any commands received before first scan are discarded. The motor state is evaluated and the instruction aligns with the current state of the motor, as if the Hand command source were selected.
Instruction first scan
See instruction first run in the function block diagram table.
EnableIn is false
Handled the same as if the motor is taken Out of Service by command. The motor outputs are de-energized, and the motor Command Source is shown as Program Out of Service on the HMI. All alarms are cleared. EnableOut is set to false.
EnableIn is true
EnableOut is set to true.
The instruction executes.
Postscan
EnableIn and EnableOut bits are cleared to false.
Structured Text
In Structured Text, EnableIn is always true during normal scan. Therefore, if the instruction is in the control path activated by the logic it will execute.
Condition/State
Action Taken
Prescan
See Prescan in the Function Block Diagram table.
Instruction first run
See Instruction first run in the Function Block Diagram table.
EnableIn is true
See EnableIn is true in the Function Block Diagram table.
Postscan
See Postscan in the Function Block Diagram table.
Example
Ladder Diagram
PMTR_example_ladder
Function Block Diagram
PMTR_example_FBD
Structured Text
PMTR(MyNG_PMTR, MyNG_PMTR_Ref_Ctrl_Set, MyNG_PMTR_Ref_Ctrl_Cmd, MyNG_PMTR_Ref_Ctrl_Sts, MyNG_Bus[23], 0)
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.