通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

“初始化”的脚本程序如下:

RoomID = 1

“查询1 号控制室温/湿度”的脚本程序如下:

RoomID1 = RoomID

RoomID = RoomID + 1

if (roomtemp = 0) or (roomhum = 0) then

room1st = 1

ErrorTemp = roomtemp

ErrorHum = roomhum

!SaveData(ErrorSave) ‘ 记录通信错误

exit

endif

room1temp = roomtemp

room1hum = roomhum

if room1temp 》 room1tempsv then

room1st = 1

ErrorTemp = room1temp

ErrorHum = room1hum

!SaveData(exception) ‘ 记录温度异常

exit

else

room1st = 0

endif

其它策略行脚本程序与上类似。

所有的“策略调用”均调用GetRoomTHV 策略。

3. 在运行策略中新建一个名为“GetRoomSV” 的用户策略,其他步骤同1。

通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

“查询房间温/湿度SV 值”脚本如下:

‘ 发送控制室温/湿度SV 查询命令

Out_Extern = 0

Out_Remote = 0

Out_ID = !BitLShift(RoomID, 3) + 0 ‘ 控制室ID + 单帧(点对点)

Out_DataLen = 8

Out_Data0 = 0

Out_Data1 = 0

Out_Data2 = 0

Out_Data3 = 1

Out_Data4 = 0

Out_Data5 = 0

Out_Data6 = 0

Out_Data7 = 0

!setstgy(ObjectToString)

‘ 发出命令

Out_CANData = Out_CANData2

‘ 等待命令发出

!TimerReset(1, 0)

!TimerRun(1)

!TimerWaitFor(1, Delay)

!TimerStop(1)

‘ 接收控制室温/湿度

!setstgy(StringToObject)

if (In_Extern 《》 0) or (In_Remote 《》 0) _

or ((!BitAnd(In_ID, 1024)《》1024) _

and (!BitAnd(In_ID, 7)《》0)) then

In_ID = 0

exit

endif

roomtemp = roomhum = 0[page]

“计算控制室的温度SV” 的执行条件是!BitAnd(!BitRShift(In_ID, 3), 127) = RoomID 表达式的值为非0, 脚本程序如下:

Byte0 = In_Data0

Byte1 = In_Data1

Byte2 = In_Data2

Byte3 = In_Data3

!setstgy(UniteFloat)

roomtempsv = float

“计算控制室的湿度SV” 的执行条件是!BitAnd(!BitRShift(In_ID, 3), 127) = RoomID 表达式的值为非0, 脚本程序如下:

Byte0 = In_Data4

Byte1 = In_Data5