> > please respond via e-mail with subject line "AM-19 script"
>
> > or similar to
>
> But then none of us see the answers...the point of a message
> board is to share knowledge.
>
OK, here's what I've written; the current problem is that it issues a Raise on Channel 16 (which in turn is wired to the 'status' input on 16) at EVERY tower 'comparison'
I think (watching the 'Event List' as it runs) that the sample grabbed is not 'settled' enough
any suggestions appreciated:
Const WIZ_ARC = "KHMO-AM"
Const WIZ_PHASE = 15
Const WIZ_RATIO = 16
Dim WIZ_CONN
Dim T
Call TakeReading(13, True, 3, 0, "Tower 4")
Call TakeReading(13, False, 3, 0, "Tower 1")
Call TakeReading(14, True, 3, 0, "Tower 2")
Call TakeReading(14, False, 3, 0, "Tower 3")
Call TakeReading(15, True, 3, 0, "Tower 5")
Call TakeReading(15, False, 3, 0, "Tower 6")
'Connect to the ARC; if it can not connect, abort the script
If Not IsConnected(WIZ_ARC) Then
If Connect(WIZ_ARC) <> "Connected" Then
Message "Unable to connect to " & WIZ_ARC & ". Aborting script."
EndScript
End If
WIZ_CONN = True
End If
Sub TakeReading(WIZ_CHAN, WIZ_RAISE, WIZ_DUR, WIZ_WAIT, WIZ_LABEL)
Message "Tower readings: " = "WIZ_LABEL"
IssueCommand WIZ_ARC, WIZ_CHAN, WIZ_RAISE, WIZ_DUR
Wait WIZ_WAIT
Message WIZ_LABEL & " Phase " & NewValue(WIZ_ARC, WIZ_PHASE) & _
WIZ_LABEL & " Ratio " & NewValue(WIZ_ARC, WIZ_RATIO)
If Time() >= Sunrise("KHMO") and Time() < Sunset("KHMO") Then
T = "Day"
Else
T = "Night"
End If
If T = "Day" Then
If WIZ_LABEL = "Tower 4" Then
If NewValue(WIZ_ARC, WIZ_RATIO) < 0.950 or NewValue(WIZ_ARC, WIZ_RATIO) > 1.050 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL ="Tower 1" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 97 or NewValue(WIZ_ARC, WIZ_PHASE) > 103 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.851 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.929 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 6" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 174 or NewValue(WIZ_ARC, WIZ_PHASE) > 180 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 1.045 or NewValue(WIZ_ARC, WIZ_RATIO) > 1.155 Then
Raise WIZ_ARC, 16
End If
End If
ElseIf T <> "Day" Then
If WIZ_LABEL = "Tower 4" Then
If NewValue(WIZ_ARC, WIZ_RATIO) < 0.475 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.525 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 1" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 159 Or NewValue(WIZ_ARC, WIZ_PHASE) > 165 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.447 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.494 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 2" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 161 Or NewValue(WIZ_ARC, WIZ_PHASE) > 167 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.442 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.488 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 3" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 0 Or NewValue(WIZ_ARC, WIZ_PHASE) > 5 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.489 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.541 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 5" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 155 Or NewValue(WIZ_ARC, WIZ_PHASE) > 161 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.494 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.546 Then
Raise WIZ_ARC, 16
End If
ElseIf WIZ_LABEL = "Tower 6" Then
If NewValue(WIZ_ARC, WIZ_PHASE) < 156 Or NewValue(WIZ_ARC, WIZ_PHASE) > 162 Then
Raise WIZ_ARC, 16
ElseIf NewValue(WIZ_ARC, WIZ_RATIO) < 0.518 or NewValue(WIZ_ARC, WIZ_RATIO) > 0.572 Then
Raise WIZ_ARC, 16
End If
End If
End If
'Wait until the command has finished
Wait ((WIZ_DUR * 3000) - WIZ_WAIT) +3000
End Sub