An MQTT Broker for Plant Data: Topics, QoS, Retained Messages and Last Will

The topic string plant2 slash pack slash carton1 slash tr14 slash belt1 slash amps drawn as six boxes labelled site, area, line, machine, device and signal, above a table of five subscriptions including the hash wildcard and the plus wildcard with what each one brings back and a warning on the bare hash

An MQTT Broker for Plant Data: Topics, QoS, Retained Messages and Last Will The topic string plant2/pack/carton1/tr14/belt1/amps is 42 bytes. The float it carries is four. Every publish of the motor current on one belt of the carton transfer therefore spends ten times as much on saying where the number came from as on the … Read more

Scaling a Kinetix Axis in Real Units: Position Units, the Conversion Constant and the Gearbox

Four boxes left to right with the same displacement written under each: motor VPL-B1303C at 4000 counts per rev showing 16,000 feedback counts, a 4:1 gearbox showing 4 motor revs, a 5 mm lead ball screw showing 1 screw rev, and the load in millimetres showing 5.000 mm

Scaling a Kinetix Axis in Real Units: Position Units, the Conversion Constant and the Gearbox A new Kinetix axis is scaled one Position Unit per motor rev, at 1,000,000 Motion Counts per rev, and on Unlimited travel that axis rolls its position accumulator over after 2,147 revolutions. The motion runs through the rollover perfectly smoothly. … Read more

Tuning a Kinetix 5700 Axis: Load Ratio, Bandwidth and the Autotune That Lies

Step response of the same position loop at three bandwidths: 8.2 Hz settling inside two percent at 91 ms, 41.7 Hz at 22 ms, and 101.7 Hz peaking at 112.6 percent before settling at 9 ms, all against a target line at 100 percent

Tuning a Kinetix 5700 Axis: Load Ratio, Bandwidth and the Autotune That Lies Loop Response on the General page of a Kinetix axis is a three-item dropdown, and on a drive with the default 1.5 ms model time constant it moves the position loop between 8.2 Hz and 101.7 Hz. That is a factor of … Read more

Driving a Motor from a ControlLogix: From a Rung to a Turning Shaft on a Kinetix 5700

Five boxes left to right: Your task with MAM executing once in an 8 ms periodic task, Motion group with the planner and a 2.0 ms coarse update in the same controller, 1756-EN4TR carrying the motion connection at a 2.0 ms RPI, 2198-D032-ERS3 inverter axis 1 rated 32 A, and a VPL-B1303C motor at 2.0 Nm on a single Hiperface DSL cable

Driving a Motor from a ControlLogix: From a Rung to a Turning Shaft on a Kinetix 5700 A 2198-D032-ERS3 inverter, a VPL-B1303C motor on one Hiperface DSL cable, and a 1756-L83E that has never carried a motion group. Two rungs will turn that shaft — an MSO and then an MAM — and neither is … Read more

Arrays, UDTs and Structures Over OPC UA: What the Client Actually Sees

The TR14_Belt user-defined type listed twice side by side with byte offsets, as built at 28 bytes and again at 32 bytes after a DINT called Jam Count is inserted after the State member, with the six members that changed offset marked in red and the hidden host SINT and pad bytes shown in grey

Arrays, UDTs and Structures Over OPC UA: What the Client Actually Sees Insert one DINT called Jam_Count into the TR14_Belt user-defined type, put it after the State member where it belongs logically, and download to the 1756-L83E. Fault_Code moves from byte 4 to byte 8, and Starts, Run_Seconds, Speed_mps, Motor_Amps and Last_Fault_S each move four … Read more

MAH and Homing a Kinetix Axis: The Switch, the Marker, and the Home That Lands in the Wrong Place

Position and velocity against time for a home to switch then marker: forward at 25 mm/s to the switch at 62 mm, reverse at 5 mm/s until the switch clears, on to the marker at 55.4 mm

MAH and Homing a Kinetix Axis: The Switch, the Marker, and the Home That Lands in the Wrong Place A home-to-switch-then-marker sequence at a Home Speed of 25 mm/s and a Home Return Speed of 5 mm/s takes just over four seconds on a 2198-D032-ERS4 axis, and 1.5 of those seconds are spent crawling back … Read more

Browsing an OPC UA Server Against a Static Tag List: Which One, and When Each Is Wrong

Six boxes showing what a client does during a browse: read the namespace array from node i=2255, browse the Objects folder at i=85, browse each folder in turn or in batches up to MaxNodesPerBrowse, call BrowseNext for every continuation point returned, read the attributes of each node worth keeping, and finish with a tag list, with two numbered break points naming the continuation point errors

Browsing an OPC UA Server Against a Static Tag List: Which One, and When Each Is Wrong Node i=2255 is the NamespaceArray, and one Read of it is the single most-skipped call in industrial OPC UA. Skip it and you type ns=3 into a client, which works for a year and then reads the wrong … Read more

MSO, MSF and MASD on a Logix Axis: Enabling It, Dropping It, and the One That Opens the OK Contact

Four boxes - Stopped, Running, Shutdown, Faulted - with MSO, MSF, MASD, MASR and MAFR on the arrows between them

MSO, MSF and MASD on a Logix Axis: Enabling It, Dropping It, and the One That Opens the OK Contact An MSO against a 2198-D032-ERS4 axis sets ServoActionStatus and DriveEnableStatus, and it does not set its own .DN bit in the scan that fired it. On a 2 ms coarse update period the drive answers … Read more

The Motion Group and the Coarse Update Period: What Happens When You Ask for Too Much

Three timelines of a 4.0 ms base update period with the motion task drawn as a coloured block at the start of each period and everything else in grey: eight axes leaving most of each period free, sixteen axes leaving little for the ladder, and twenty-four axes where the motion task fills the whole period and runs into itself, annotated with GroupFault.GroupTaskLoadingFault bit 2

The Motion Group and the Coarse Update Period: What Happens When You Ask for Too Much Bit 2 of MOTION_GROUP.GroupFault is GroupTaskLoadingFault, and the motion instruction reference describes it in plain words: the group coarse update period is too low, and user application tasks are not getting enough time to execute. That is a 1756-L84E … Read more

Advertisement