Unity pro xl 5.0 子程序调用

标签:
it |
分类: plc课件教程 |
Unity pro xl 5.0
一、编写子程序
1、在项目浏览器中,右键点击SR段,选择“新建SR段”,如下图:
http://s15/mw690/0068KRmqzy741ejuNlkae&690pro
2、在弹出的对话框中(下图)填写新建段的名称“zcx”,在“语言(L)”中选择“ST”。然后确定。
http://s4/mw690/0068KRmqzy741elcFYDc3&690pro
3、在程序编辑窗口中输入以下程序:
http://s1/mw690/0068KRmqzy741elqTvi70&690pro
IF (RE(B1) AND GR AND NOT ST1) THEN SET(Y1);
END_IF;
IF B2=1 OR S0=1 THEN RESET(Y1);
END_IF;
Y0 :=Y1 OR ST1;
FBI_1(CU:=B2,CD:=B3,CV=>CHESHU);
GR:= LT_INT (IN1:=CHESHU,IN2:=100);
RED:=EQ_INT (IN1:=CHESHU,IN2:=100);
FBI_2(IN:=B3,PT:=T#10S, ET =>VAR_OUT1);
IF (FBI_2.Q AND NOT S0=1 AND NOT ST2=1) OR ST2=1 THEN Y2:=1;
Y2:=0;
END_IF;
RETURN;
以上程序是小区停车场控制程序,是用ST编程语言编写。
ST编程语言又叫结构化文本(Struct Text) ,它类似于计算机语言编程,利用它可以很方便地建立、编辑和实现复杂的算法,特别在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。
在使用ST 语言编程时,对于已声明的变量,您可以在目标位置直接输入变量名称,也可以通过数据选择输入变量。通过数据选择输入变量的方法是:菜单命令“编辑” > “数据选择”或者右键菜单“数据选择”打开数据选择对话框:
下面是程序分析:
语句IF (RE(B1) AND GR AND NOT ST1) THEN SET(Y1);END_IF;实现了下图中LD程序的功能,即B1、GR、ST1构成了“与”关系,当它们同时导通时(=1),Y1才能导通(=1)。用IF语句判断。当B1=1时,Y1(S)导通入口栏杆抬起。
语句IF B2=1 OR S0=1 THEN RESET(Y1);END_IF;实现了下图中LD程序的功能,即B2和S0构成“或”逻辑关系,即B2、S0有一个导通(=1),Y1(R)导通(=1)。入口栏杆关闭。
http://s13/mw690/0068KRmqzy741eqbgtK3c&690pro语句Y0 :=Y1 OR ST1;给Y0赋值。也可以写成IF Y1 OR ST1 THEN Y0:=1;;END_IF;
http://s9/mw690/0068KRmqzy741eqn8bC58&690pro
语句FBI_1(CU:=B2,CD:=B3,CV=>CHESHU);调用FBI_1功能块并赋值。实现下图LD语句功能。
http://s2/mw690/0068KRmqzy741eqVVct41&690pro当B2从0到1时,CHESHU加1,B3从0到1时,CHESHU减1,CHESHU是停车场停车数量。CHESHU小于100,绿灯亮,大于等于100红灯亮,GR=0时,入口栏杆不会再抬起。
语句
GR:= LT_INT (IN1:=CHESHU,IN2:=100);
RED:=EQ_INT (IN1:=CHESHU,IN2:=100);实现了下图功能,也是调用比较功能块并赋值。
http://s2/mw690/0068KRmqzy741erkAi581&690pro语句FBI_2(IN:=B3,PT:=T#10S, ET =>VAR_OUT1);
IF (FBI_2.Q AND NOT S0=1 AND NOT ST2=1) OR ST2=1 THEN Y2:=1;
ELSE
Y2:=0;
END_IF;
实现了下图LD程序功能。第一句调用功能块FBI_2,并赋值。第二句FBI_2的输出端Q(FBI_2.Q)和S0、ST2常闭接点是“与”关系。又和ST2常开接点是“或”关系。当B3=1时,Q(FBI_2.Q)=1,Y2导通,出口栏杆抬起,,当B3=0时,定时器启动,延时10秒后,Q(FBI_2.Q)=0,出口栏杆关闭。
http://s8/mw690/0068KRmqzy741erFQXR37&690proRETURN;是子程序返回。
一、调用子程序
1、
在语言中选择“LD“。
http://s6/mw690/0068KRmqzy741eBvExf85&690pro
1、
http://s16/mw690/0068KRmqzy741eBKk3R9f&690pro
在调用线圈属性中输入子程序名“ZCX“。
http://s14/mw690/0068KRmqzy741eBXUdL2d&690pro
一、调试程序
1、
动态数据表用于监控变量的实时变化值。在项目浏览器中,右键单击“动态数据表”,在右键菜单中,点击“新建动态数据表”,创建用于监控变量的动态数据表。
在动态数据表中添加要监控的数据项,双击“名称”列下的空行,手动输入寄存器地址或变量名,或者单击http://s1/mw690/0068KRmqzy741eIkHaod0&690pro
,从变量表里直接选择变量,如下图所示。
http://s13/mw690/0068KRmqzy741eJIXYo7c&690pro
http://s11/mw690/0068KRmqzy741eK9Vcmfa&690pro
3、修改显示格式,在动态数据表中,选择需要的数据项,在“值”列单击右键,在右键菜单中选择显示格式,
如下图所示。
http://s13/mw690/0068KRmqzy741eKuVg83c&690pro
4、在动态数据表中修改变量值,首先按下“修改”按钮,如下图所示,然后在您要修改的变量对应行双击“值”列,输入需要的值,回车确认即可。对于EBOOL
类型的定位变量,我们可以强制它。首先按下“强制”按钮,如下图所示,然后选择您要强制的数据项,再点击强制选项,http://s12/mw690/0068KRmqzy741eRspS36b&690pro
http://s1/mw690/0068KRmqzy741eSMpbOa0&690pro
5、在程序编辑器中修改变量值,用鼠标选择您要修改的变量,单击右键,在右键菜单中根据需要选择“设置值”或“强制值”,即可修改变量的当前值。对于强制后的变量,如果强制为1,变量名会自动加上绿色矩形边框;如果强制为0,变量名会自动加上红色矩形边框。
http://s2/mw690/0068KRmqzy741eTad9L31&690pro
6、联机修改程序
http://s5/mw690/0068KRmqzy741eTwdDea4&690pro