JSR, SBR and RET: Passing Parameters Into a Routine Without a Controller Tag

A diagram of one JSR call: the calling routine's program-scoped tags on the left, the JSR instruction with two input parameters and one return parameter in the middle, the subroutine's own program-scoped tags on the right, and a numbered list of the five steps from rung true to RET copying the answer back

JSR, SBR and RET: Passing Parameters Into a Routine Without a Controller Tag Type 4, Code 31 on a 1756-L83E, and the routine it pointed at was three rungs long. The general instructions reference gives three separate ways to earn that code and every one of them is about counting: a JSR with fewer input … Read more

The MSG Control Tag on a Logix Controller: What Each Tab Writes Into It

Three columns headed Configuration, Communication and Tag, each listing the fields on that tab of the Message Configuration dialog next to the MESSAGE structure member the field is stored in, with a note that configuring the message once configures every rung naming the same tag

The MSG Control Tag on a Logix Controller: What Each Tab Writes Into It Line_Msg.DN came true on rung 13 of a 1756-L71 and the forty DINTs the rung was guarding still held last shift’s numbers. The bit had been set by a different message — a four-element write to a capper down on rung … Read more

COP and CPS Instructions on a ControlLogix: Which One Copies What

Worked byte arithmetic for a COP with Length 20 from a five-element SINT array into a ten-element DINT array: the source drawn as five one-byte cells, the destination as ten four-byte cells, then the three limits stacked as requested 80 bytes, destination tag 40 bytes and source tag 5 bytes, with the five-byte answer boxed

COP and CPS Instructions on a ControlLogix: Which One Copies What A COP with a Length of 20 moved five bytes. The source was Packer_Raw, a SINT[5]; the destination was Packer_Scaled, a DINT[10]; the rung went true on every scan of a 1756-L71 and nothing faulted, nothing latched, nothing appeared in the Minor Faults tab. … Read more

S7-1200 ERROR LED Flashing After an SM 1223 Swap: Read the Two LEDs Before the Buffer

The CPU and SM 1223 front panels drawn with their indicators named: STOP/RUN, ERROR and MAINT on the CPU, DIAG and the channel LEDs on the module

A new SM 1223 goes into slot 2, the panel comes back up, and the ERROR LED flashes red while the STOP/RUN LED sits solid yellow. The module that came out was 6ES7223-1BL32-0XB0. The one from stores is 6ES7223-1BL32-1XB0, and those two part numbers are the same sixteen inputs and sixteen outputs in the same … Read more

Comparing Offline and Online Blocks in TIA Portal: the Checksums, the Symbols and the Detailed View

The compare editor drawn as our own layout: left column offline objects, right column online objects, the status and action column between them, four blocks with different statuses

FB120 carries the orange half-circle in the project tree and the block you have open is the one you wrote on Tuesday. On an S7-1500 that symbol is the result of a checksum comparison, not a time stamp comparison, and the manual lists more than a dozen separate checksums behind it. Three of them have … Read more

An S7-1500 an Hour Out After the Clocks Change: RD_SYS_T, RD_LOC_T and the Time Zone

The clock chain drawn as three stages: module time in UTC, the Bias and DaylightBias offsets from the configuration, and the local time that RD_LOC_T returns

The batch record says the mixer started at 06:14 and the operator watched it start at 07:14, on the Sunday the clocks moved. The CPU 1516-3 PN/DP is keeping perfect time. What is wrong is that somebody wired RD_SYS_T into the timestamp and RD_SYS_T hands back the module time, which on this family is always … Read more

Advertisement