RSLogix 5000, can i MOV a word?

Ah. Hilarious. My dad used to have an anemometer on a windsurfer mast strapped to the side of his van, sampled by a timex 2068 powered by the van battery, so he could estimate the right size of sail to rig.

Then how about this:

OTU ctlFAL.EN OTU ctlAVE.EN

FAL ctlFAL 15 0 ALL array_15s[ctlFAL.POS]
(raw > array_breakpoints[ctlFAL.POS]) * 15 AVE array_15s[0] a_DINT ctlAVE 15


?

array_breakpoints is a DINT[15] and contains the 15 clockwise breakpoints, from SE=>ESE at around -8000 in array_breakpoints[0] to S=>SSE at around 28000 in array_breakpoints[14].


There are other ways e.g.

CLR a_DINT CLR index

LBL loop BST GRT raw array_breakpoints[index] ADD a_DINT 1 a_DINT
NXB ADD index 1 index LES index 15 JMP loop
BND



 
I know you can MOV strings on a 1756-L82E with LogixDesigner Version 32.04 and up.
Version 32.02 and under wont allow it. Just went through this experience on a project.
 
I know you can MOV strings on a 1756-L82E with LogixDesigner Version 32.04 and up.
Version 32.02 and under wont allow it. Just went through this experience on a project.
This is not quite correct - it's based on hardware, not software. According to the instruction help, CompactLogix 5380, CompactLogix 5480, ControlLogix 5580, Compact GuardLogix 5380, and GuardLogix 5580 controllers can all MOV strings at any version - although those controllers are only supported from v29 and up (some of the GuardLogix and Compact GuardLogix processors might be even later). If GTUnit had issues with v32.02, perhaps minor revision v32.02 had some sort of particular bug that broke this functionality, at v32.04 restored it?

Also, from v29 and above, you can also use constant strings i.e. you can literally move "NNW" into some tag, instead of having to create a tag called "WindDir_NNW" and give it the value "NNW". The same hardware requirements as above apply.

Rockwell Knowledgebase Answer ID: QA5896
Access: Everyone
 
There are other ways ...

Binary search:

CLR LO MOV 8 HALFSTEP

LBL loop ADD LO HALFSTEP MID
NXB
GEQ raw array_breakpoints[MID] MOV MID LO
BND
XIC HALFSTEP.0 DIV HALFSTEP 2 HALFSTEP JMP loop


COP WIND_STRINGS[LO] V_WIND_DIRECTION



N.B.

  • array_breakpoints[0] is -32768;
  • array_breakpoints[1] is lowest raw value that corresponds to ESE;
  • array_breakpoints[2] is lowest raw value that corresponds to E;
  • ...;
  • array_breakpoints[15] is lowest raw value that corresponds to SSE
 
Last edited:

Similar Topics

Hello All, New kid on block with AB 5000 platform. Using the MOV ( move ) command. I can't get the logic to shift the value of source to...
Replies
11
Views
7,878
Hi folks, in the alarm manager of Rslogix 5000, the tag-based alarm has been created. But when I tried to change the condition, it was found the...
Replies
2
Views
157
I am completely stuck on building a ladder program that requires a start button to be pressed 3 times to turn on motor 1. Then motor 2 starts...
Replies
20
Views
578
First off, I'm a hobbyist-level programmer, and this program isn't controlling anything anything that could even remotely be considered "life...
Replies
18
Views
518
Back
Top Bottom