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
Function Block Diagram
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.
Operation
This diagram illustrates functionality of the PMTR instruction:
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.
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
Function Block Diagram
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