FUNCTION_BLOCK FB10
//----------------------------版权--
TITLE = '水泵筛选'
VERSION: '1.0'
AUTHOR: lck
NAME:Pump
FAMILY: Fencer
//-----------------------版权---
//--------输入变量--------------
VAR_INPUT
(* 以下变量输入原则,例如I0.0赋值给MW10.0,I0.1赋值给MW10.1,以此类推.然后把MW10赋值给Pump_Local_remote_input,代表水泵运行状态
为了便于编程和使用对以下变量做出要求
Pump_Local_remote_input 要求存储的数据位当中1代表运行
Pump_Input_resect_input 要求存储的数据位当中1代表投入
Pump_Normal_fault_input 要求存储的数据位当中1代表正常
Pump_Run_stop_input 要求存储的数据位当中1代表运行
*)
Pump_Local_remote_input : WORD ;//水泵运行状态,word正好16位,存储16个泵的本地远程状态,以后通过循赋值给结构体Pump_state_time_strcuct内部Local_remote变量使用.
Pump_Input_resect_input : WORD ;//水泵运行状态,word正好16位,存储16个泵的投入切除状态,以后通过循赋值给结构体Pump_state_time_strcuct内部Input_resection变量使用.
Pump_Normal_fault_input : WORD ;//水泵运行状态,word正好16位,存储16个泵的故障正常状态,以后通过循赋值给结构体Pump_state_time_strcuct内部Normal_fault变量使用.
Pump_Run_stop_input : WORD ;//水泵运行状态,word正好16位,存储16个泵的运行停止状态,以后通过循赋值给结构体Pump_state_time_strcuct内部Run_stop变量使用.
Pump_quantity : INT ;//水泵数量,用于循环判断水泵数量,方便进行数组指针边界检查.
END_VAR
//--------输入变量--------------
//*********输入输出变量*********
VAR_IN_OUT
END_VAR
//*********输入输出变量*********
//>>>>>>>>>>>>>输出变量>>>>>>>>
VAR_OUTPUT
Out_Pump_num: BOOL ; //输出当前判断哪个泵适合启动,输出的位泵的编号.
END_VAR
//>>>>>>>>>>>>>输出变量>>>>>>>>
//^^^^^^^^^^^^临时变量^^^^^^
VAR_TEMP
Pump_state_time_strcuct: STRUCT //水泵状态时间结构体
Local_remote : ARRAY[1..16] OF BOOL ; //存储水泵本地远程状态
Input_resection : ARRAY[1..16] OF BOOL ;//存储水泵投入切除状态
Normal_fault : ARRAY[1..16] OF BOOL ;//存储水泵故障正常状态
Run_stop : ARRAY[1..16] OF BOOL ;//存储水泵运行停止状态
END_STRUCT;
END_VAR
//^^^^^^^^^^^^临时变量^^^^^^
//%%%%%%%%%%%%%静态变量%%%%%
CONST
END_CONST
//%%%%%%%%%%%%%静态变量%%%%%
BEGIN
Pump_state_time_strcuct.Local_remote[6] := true;
Out_Pump_num := Pump_state_time_strcuct.Local_remote[3];
END_FUNCTION_BLOCK
举例, 现场有3个水泵运行,分别是i0.2,i0.4,i0.5,那么把IB0存储到VW10里面就是0000000000110100,相当于10进制的52.
然后把vw10传送给Pump_Local_remote_input !!! 那么我如何把这个传送进来的VW10 转换成bool存储到Pump_state_time_strcuct.Local_remote这个数组里面.