Studio5000 BTD

Join Date
Aug 2020
Location
NY
Posts
2
Hi all,

I have been programming PLC's for a couple years, but I'm fairly new to AB. I'm using a 5069-L320ER v. 32.11

I used a strategy from a slightly older version, when we were using an L32ER.

One of the operators we used in the strategy was a BTD (bit field distribute). This checked an analog input card for any open thermocouples. If there was an open, we would then set true a bit in another tag.

For some reason, now, the OpenWire field in the analog card is a Boolean, not an integer. The BTD function cannot use boolean, so I am looking for another way to do this for multiple thermocouples. Rather than doing a check/set one rung at a time, which seems time consuming.

Forgive me if I'm not using the correct terms or describing my issue thoroughly enough, I'll be happy to provide more information. For all I know I'm missing something very simple here. Thank you for any assistance!
 
You can't set the bit with the BOOL flag?




I think the OP means

  • At some time in the past, all of the open thermocouple BOOLs could be treated as bits in an integer,
    • so a value of zero (or -1) for that integer meant all thermocouples were okay.
  • However now those bits are in an array of BOOLs and cannot be checked as a group via BTD
Is that right?


If so, this is the second post in as many days where this issue has come up; the other was about not being able to use the SQO Sequencer Output any more to set multiple bits on a discrete output card. Why would A-B do this? Have computer science bitheads, with no knowledge of how real things work, taken over the programming?
 
Dr. Bit, this sounds exactly right (to the best of my AB knowledge!). The BTD function can use INT's and not BOOL. I'm guessing originally BTD could either use BOOL, or the thermocouples used INT for the open circuit check. Either way, something obviously changed.

My current work-around is to just check each thermocouple individually. Little time consuming and messy looking but it works for now, until I can figure out a way to check them all at once.
 
Writing in regards to 1756 analog modules, there are status integers corresponding to the individual boolean tags for each channel (as if the booleans were "aliases" to the bits in the integer tags). You may be able to accomplish the BTD approach using the channel status integer instead of trying to reference the named, boolean status tags.

For example, with a 1756-IF8, there is a ..I.Ch2Status (SINT) which contains the values in ..I.Ch2CalFault, ..I.Ch2Underrange, ...., ..I.Ch2HHAlarm (BOOL) tags.

I do not have access to Compact-Logix with analog, so cannot say for sure this approach would work on that platform.
 

Similar Topics

I have an array of 55 REAL values. Is there a way to multiply based on the array location ? I have 55 transfer belts that are equally spaced...
Replies
3
Views
149
Hi Hope you all are doing well. Iam working on a project with some AOI. I also hate no online edits... lol. My problem occurs when I use a UDT...
Replies
2
Views
157
I am not sure if this is possible but if there is a way, you guys would be the ones to know. I am currently working on a project where we are...
Replies
7
Views
215
Hi all. I'm having issues adding an ethernet module to my project in Studio500 v34. The device is a Fredericks Televac EthernetIP MX gateway which...
Replies
8
Views
341
The day of week program started changing day of week 2 hours early. It changes at 10 P.M. instead of 12A.M. Just started this year.
Replies
22
Views
2,654
Back
Top Bottom