[三菱] 三菱ST语言:第6课 FB、标签的用法

[复制链接]
查看313 | 回复0 | 2024-5-10 12:03:15 | 显示全部楼层 |阅读模式
本期内容:
       标签的应用
       标签数据
       标签编程的好处
       FB功能块的应用
       FB编程的好处


往期内容:
三菱ST语言:第1课 ST语言的基础
三菱ST语言:第2课 定时器计数器的应用
三菱ST语言:第3课 传送指令的应用
三菱ST语言:第4课 赋值指令的应用
三菱ST语言:第5课 数据处理与算法



一,标签定义和数据类型

标签是用来标志您的产品目标和分类或内容,像是您给您的目标确定的关键字词,便于您自己和他人查找和定位自己目标的工具

我们如果要在梯形图中使用标签的话,就要在新建工程中选择标签编程,或者简单编程更改为标签编程。当然ST 和结构体编程自己打开的。





局部标签
只能在同一个程序使用

全局标签
整个程序使用



我们打开标签设置

类代表我们的变量类型,



VAR:    可变量的意思
VAR-CONSTANT:可理解成常数标签,必须设置
VAR-RETAIN: FB程序中可使用的锁存型的标签
VAR-INPUT:  FB程序的输入中使用的标签 ( 输入标签)
VAR-OUTPUT:FB程序的输入中使用的标签 ( 输出标签)
VAR-IN-OUT: 输入与输出可使用相同名称的标签 ( 输入输出标签)

标签名:就是定义这个变量的名称,除了符号数字你随便取名,实在不会取就叫王富贵






在数据类型这一栏目中有多个选项

基本数据类型:

Bit:     二进制数比如0和1 代表我们的M
Word:      16位寄存器  D
Double Word:  32位寄存器 D
FLOAT(single precision):     32位浮点数   D
FLOAT(Double precision):   64位浮点数   D
STRING[32]:     字符串
Timer:    定时器
Counter: 计数器
Retentive Timer: 相对保留时间

结构体是我们调用的标签名称
FB也同是我们调用的名称。

数组是我自我选择是否使用数组后续我会一一讲解




二,标签的使用

比如我现在做一个总电源标签





我们可以看到平常我们做启保停电路时,都是用M来表示,我们这边用标签来表示。效果都是一样的,但是我们会有一个好处就是看起总体的画面都很清楚。

如果你想寄数值的话我们一样也是可以用标签来解决。



总数:=第一个数+第二个数;



我们可以修改数值



就和我们的D一样会变换
梯形图同理



当然你也可以用它来给我们的D进行传送

总数:=第一个数+第二个数;D1:=总数;



如果你想看你的标签地址位置

我们打开工具-点击自动软元件设置可以看到PLC为我们分配好了起始位置和结束位置,如果你不想要你可重新再设置






三,建立FB块

在PLC编写程序过程中经常遇到一些 重复逻辑控制 的梯形图,比如流水线控制,气缸报警等等,这时候可以使用FB块来便捷编程,减少工作量与出错率

我们点击FB管理右键新建FB块





输入我入我们的数据名称
比如做一个启保停电路我们启名叫起保停
程序语言选择梯形图或ST语言
注:
FX系列PLC梯形图和ST语言不能共存
Q系列PLC梯形图和ST语言可以共存

我这边用的是PLC语言是梯形图



这样我们就建立好了FB块



纯ST语言和梯形图FB块之间是不一样的

1、如果你调用的FB块的程序是梯形图,那么你就要设置打插针
就是输入,输出

VAR-INPUT:  FB程序的输入中使用的标签 ( 输入标签)
VAR-OUTPUT:FB程序的输入中使用的标签 ( 输出标签)

这二个必须要设置不然用不了



我们设置好后编写梯形图



我们编写完后保存转换,在调用程序中调出来
方法直接选中FB块拖出来



名称可以使用默认 也可以使用自定
然后确实就行了
然后连接信号这样我们有用么他完成了



我们启动动X1  我们的Y0也输出



我们双击FB块可以看到,他对应我们的按钮



按下X2    Y0停止输出



这就是FB块的针脚程序

当然FB的目白就为了减少代码的使用,我们只要做好了一个FB块
我们就可以重复使用



同一个启保停电路我用了三次无不干涉




四,ST语言调用FB

带针脚的FB块
;启保停_1(启动:= ?BOOL? ,停止:= ?BOOL? ,输出:= ?BOOL? );
和梯形图一样填好对应的参数就行了

但是如果我们建的是ST语言的FB块,

我们就不会做针脚
比如我们做一个左右边启动亮灯的程序

OUT_T(M0 AND  NOT TC0 , TC0 , k100 );先在主程序上写要计时间



然后在FB块中写上对应的时间要做什么

Y0:= TN0 > k10 AND TN0 <k30;Y1:=TN0 > k30 AND TN0 <k80;Y2:=TN0 > k80 ;


然后我们再从主程序中调用它
直接拖过来

OUT_T(M0 AND  NOT TC0 , TC0 , k100 );左边灯_1();



然后启动开关,我们对应的灯动作





在ST语言中调中FB块就像我们的子程序一样
主程序就用来做开关信号
逻辑分开做成一个子程序
输出分开做成一个子程序
数据分开做成一个子程序
那里有问题就找那里
当然梯形图也可看个人习惯




好了今天的内容就到这里了

END





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则