哈喽,你好啊,我是雷工!
本节根据学习视频,练习实现流水灯控制,通过小练习,实现对整个应用流程的熟悉了解。
以下为学习笔记。
01 实现功能
点击【启动】按钮,流水灯开始运行,间隔1秒,可修改间隔时间。当点击【周期停止】时,流水灯运行完本轮后停止运行,当点击【立即停止】流水灯立刻停止运行。
02 实现效果
03 实现过程
3.1、实现思路
①:确定硬件映射关系;
②:确定流动方向;
③:确定启停条件;
3.2、新建工程
新建一个【标准工程】,选择设备【AM401-CPU1608TP/TN】,名称命名为【LeiGong_WaterLamp】,语言选择【结构化文本(ST)】。
3.3、创建全局变量列表
①:在【Application】右击选择【添加对象】,点击【全局变量列表】
②:完善名称【GVL_LeiGong_IO】点击【打开】按钮,完成创建。
③:同样的方式继续创建如下3个不同的分组,可以根据功能,应用分成不同的组,便于使用。
3.4、定义变量
在创建的全局变量列表里定义变量。
①编辑GLV_LeiGong_IO
VAR_GLOBAL
gB_DO:BYTE;
yb_xxxx_0:BOOL;
yb_xxxx_1:BOOL;
yb_xxxx_2:BOOL;
yb_xxxx_3:BOOL;
yb_xxxx_4:BOOL;
yb_xxxx_5:BOOL;
yb_xxxx_6:BOOL;
yb_xxxx_7:BOOL;
END_VAR
②编辑GLV_LeiGong_HMI
VAR_GLOBAL
lg_启动:BOOL;
lg_周期停止:BOOL;
lg_立即停止:BOOL;
END_VAR
③编辑GLV_LeiGong_Main
VAR_GLOBAL
Ton_Lamp:TON;
END_VAR
④intWaterLampStep定义
3.5、添加程序
①:在【Application】右击选择【添加对象】,点击【程序组织单元】
②:可以填写名称,选择类型,以及选择实现语言,
③:程序创建后有一个默认的程序组织单元PLC_PRG。
④:在创建的程序上右击-选择【添加对象】,可以继续选择添加动作、方法、属性、转移。
3.6、添加动作
这里的动作ACT相当于子程序,
注意事项:
动作的执行需要在PRG程序中调用才行,才能执行,这一点感觉和C#中调用方法类似,果然编程的思想和逻辑都是相通的,很多方法使用起来也都类似。
3.7、编程动作
ACT_LeiGong_01代码如下:
CASE intWaterLampStep OF
0://等待触发
IF lg_启动 THEN
lg_启动:=FALSE;//信号自复位点动效果
intWaterLampStep:=10;
END_IF
//gB_DO:=0;
lg_周期停止:=FALSE;
10://赋初始值,从最低位开始亮
gB_DO:=1;
gB_DO_test[1]:=8;
gB_DO_test[2]:=16;
IF NOT lg_周期停止 THEN
intWaterLampStep:=20;
ELSIF lg_周期停止 THEN
intWaterLampStep:=0 ;
END_IF
20://启动计时
IF Ton_Lamp.Q THEN
intWaterLampStep:=30;
END_IF
Ton_Lamp(IN:=intWaterLampStep=20,PT:=REAL_TO_TIME(ht_间隔时长*1000),Q=>,ET=>);
30://数据移位
gB_DO:=gB_DO*2;
gB_DO_test[1]:=gB_DO_test[1]/2;
gB_DO_test[2]:=gB_DO_test[2]*2;
intWaterLampStep:=40;
40://启动计时
IF Ton_Lamp.Q THEN
intWaterLampStep:=50;
END_IF
Ton_Lamp(IN:=intWaterLampStep=40,PT:=REAL_TO_TIME(ht_间隔时长*1000),Q=>,ET=>);
50://条件判断
IF gB_DO=128 THEN
intWaterLampStep:=10;
ELSE
intWaterLampStep:=30;
END_IF
END_CASE
//停止的逻辑
IF lg_立即停止 THEN
lg_立即停止:=FALSE;
intWaterLampStep:=0;
END_IF
04 后记
以上为实现流水灯的练习,通过该练习熟悉了汇川InoProShop开发的基本步骤,
有记录不当之处欢迎留言区指正,
更多内容欢迎在交流群中相互探讨,一个人可以走的很快,但一群人能够走的足够远,期待与你同行。