1、例 1 控制一台电机的启动与停止 1 首先定义一个全局变量数据块 存贮你所需的变量 DATA_BLOCK GDI /定义一个数据结构 STRUCT Motor1_input:BOOL;/定义一个名叫做 Motor1_input 用于输入的变量 变量类 BOOL Motor1_On:BOOL;/定义一个叫做 Motor1_On 用于输出变量 类型为 BOOL Motor1_ Stop:BOOL; /定义变量 Motor1_ Stop 类型 BOOL 用于停止电机 END_STRUCT BEGIN END_DATA_BLOCK 2 编写输入函数体 FUNCTION Input :VOID /定义一
2、个函数称称为 Input,函数类型为 VOID GDI.Motor1_input=I0.0; /把 I0.0 的值赋给变量 Motor1_input GDI.Motor1_ Stop=I0.1; END_FUNCTION / /函数体结束 GDI.Motor1_input 是条用前面定义的数据块里面的变量。 3 编写输出函数 FUNCTION Output:VOID/定义一个输出函数 Q0.0:=GDI.Motor1_On;/将电机启动状态输出到 Q0.0 END_FUNCTION /函数体结束 GDI.Motor1_On /调用之前定义在数据块里的变量 3 编写控制函数 FUNCTION M
3、otor_conter: VOID /定义控制函数 IF GDI.Motor1_input=TRUE THEN GDI.Motor1_On:=TRUE; / 当接收到启动命令时 电机启动 END_IF; IF GDI.Motor1_Stop=TRUE THEN GDI.Motor1_On:=FALSE; / 当接收到停止命令时 电机停止 END_IF; END_FUNCTION 例 2 循环启动 电机 1 单机 2 电机 1 启动运行 20S 后 电机 2 启动 如此循环 启动 要求用 SCL 编写 FB 功能块 并在 OB1 中调用它 ,OB 1 也用 SCL 创建。 1 首先在 SETP7
4、 中创建一个名叫 Motor_control 的项目 并组态该项目。 2 在符号中建立你所需要的符号 并分派地址。 3 在源文件中 创建你所需要的程序。 1 创建名为 Motor_control 的项目并组态 2 在符号中建立你所需要的符号 并分派地址。 3 创建名为 Motor_contorl 的控制功能块 FUNCTION_BLOCK Motor_contorl /定义块的名称 VAR_INPUT Motor1_start:BOOL; Motor2_start:BOOL; Motor_stop:BOOL; END_VAR VAR_OUTPUT Motor1_On:BOOL; Motor2_
5、On:BOOL; END_VAR BEGIN IF Motor1_start=true THEN Motor1_On:=true; /启动电机 1 END_IF; TON.DB1(IN :=Motor1_On / IN: BOOL /启动定时间器 定时 20S ,PT :=T#20S / IN: TIME ); IF DB1.Q=TRUE THEN Motor2_On:=true; Motor1_On:=false; /定时时间到 启动电机 2 并关闭电机 1 END_IF; TON.DB2(IN :=Motor2_On / IN: BOOL ,PT :=T#20S / IN: TIME );
6、 IF DB2.Q=TRUE THEN Motor2_On:=FALSE; Motor1_On:=TRUE; END_IF; IF Motor_stop=TRUE THEN Motor2_On:=FALSE; Motor1_On:=FALSE; END_IF; END_FUNCTION_BLOCK 4 创建 名为 CYCLE 的组织块并调用 Motor_contorl ORGANIZATION_BLOCK CYCLE VAR_TEMP Motor : ARRAY0.19 OF BYTE; END_VAR /Motor_contorl 的调用 Motor_contorl.Motor_contor
7、l_DATA(Motor1_start :=Motor1_start / IN: BOOL ,Motor2_start :=Motor2_start / IN: BOOL ,Motor_stop :=Motor_stop / IN: BOOL ); Motor1_On:=Motor_contorl_DATA.Motor1_On; / OUT: BOOL Motor2_On:=Motor_contorl_DATA.Motor2_On; / OUT: BOOL END_ORGANIZATION_BLOCK TON.DB1(IN :=Motor1_On / IN: BOOL /启动定时间器 定时 20S ,PT :=T#20S / IN: TIME ); 这是调用接通延时定时器,在 system function blocks 里的 SFB4 并设定激活的条件,本例程为电机 1 启动后,激活定时器 TON.DB1 时间到后启动电机 2 ,关闭电机 1 。电机 2 启动后激活定时器 TON.DB1 定时时间到再次启动电气 1 并关闭电机 2.如此循环。 微信公众号:自动化电气系统 公众号 ID:zidonghuadianqi QQ 群:60886850