AnsweredAssumed Answered

AF "Starts and Stops" Counter Tag Calculation

Question asked by MPCPRO on May 29, 2019
Latest reply on Jun 24, 2020 by jvelasquez

Hi. 

 

I have a motor tag that tells me if it is "On" or "Off". I am trying to make a "Starts and Stops" counter tag based on this.

 

So, when it goes from "Off" to "On", this will then count as 1 to the "Starts and Stops" counter tag. This counter tag will then go up by 1 each time the motor goes from "Off" to "On". So a basic cumulative tag.

 

I am a bit unsure how to create this using Asset Analytics since I am mainly work in visualization.

 

What I've done so far is to use the "HasValueChanged" function, which checks if the motor tag has changed from 0 to 1 or 1 to 0. I've saved this to a variable for each state.

 

My current Calculation:

 

(Variable: AF Calculation)

 

MotorStatus: 'Motor Running'

MotorValue: HasValueChanged('Motor Running')

MotorOff: If (MotorStatus = 0 and MotorValue = True) THEN "Motor is OFF" Else NoOutput()

MotorOn: If (MotorStatus = 1 and MotorValue = True) THEN "Motor is On" Else NoOutput()

 

My next part of the calculation will basically be: If the motor was 0 and the current value is 1, then add +1 value to the "Starts and Stops" Counter Tag, and keep doing this each time to motor goes from 0 to 1 adding +1 to the "Starts and stops" counter.

 

My problem is I am a bit unsure how to do this and wondering here if any AF analytics experts can help!

 

Thanks. 

 

Edit:

 

 

Something along the lines of:

 

If PreviousValue('Motor Running') = 0 and CurrentValue('Motor Running') = 1 then 'Starts&Stops' + 1 else NoOutPut

But AF does not have any Previous or CurrentValue functions :/

 

I'm stuck thinking I have to use something like:

 

If ('MotorStatus' = 1) then 'Starts&Stops' + 1 else NoOutput()    

 

But I need to find a way to get my AF calculation to check the previous history of 'MotorStatus' and only run the above command is the previous value was < 1, and not run the above command if it has already run with that value.

Outcomes