大部分PLC都会内置很多基本的函数和功能块供编程人员调用,而且很多具有通用性,也就是在不同品牌的PLC中,这些函数和功能块的名称、用法和功能相同,记住这些函数和功能块的名称和使用方法,能让我们编程时更加便捷。下面以三菱PLC的编辑软件GX Works3为例,展示这些函数、功能块的使用方法。
边缘检测与计时器
1, R_TRIG/F_TRIG(上升/下降沿检测功能块)
上升沿和下降沿应该是所有程序里最常用的FB(功能块)之一了,他的功能是检测一个bool变量变化的边缘,输出一个扫描周期,下面通过一个例子介绍一下我常用的命名方法和编程格式:检测开始按钮X1的上升沿, 置位Y0,检测停止按钮X2的下降沿,复位Y0。
第一步声明标签, 我个人习惯将上升沿加前缀“rt”,下降沿加“ft”:
声明标签
第二步编程,FB的输入引脚赋值要在()内操作,而输出引脚可以当作变量直接使用,节省一个标签:
编程格式
增加变量前缀,无论在程序的什么地方使用,都能一眼看出变量的类型,方便阅读程序。
2,TON/TOF(延时启动/关闭功能块)
延时功能块也是非常常用的FB,除了起到延时的作用,还可以用来过滤信号,起到筛选的作用,例如:使用对射光电传感器X0(阻挡时ON)检测皮带上产品缝隙,当传感器OFF时间超过100ms时报警Y0。
声明标签 :
编程:
3,TP(脉冲定时器)
脉冲定时器的功能是输出一个固定时长脉冲,典型的应用如报警灯的控制,举个例子:当变量bAlarm触发后,点亮报警灯Y0,要求每隔700ms亮一次,一次亮200ms,持续闪烁。
声明标签:
编程:
ton功能块的输入设置为自身输出的非,作用是每隔700ms生成一个单扫描周期的脉冲,tp功能块将脉冲的时长设定为200ms,并给到指示灯。
算术运算
算数运算除了常用的"+","-","*","/"(加减乘除)还有“**”(幂运算)""(比较)等。还有一些常用的函数可供使用。
1,MAX,MIN(最大值,最小值函数)
选取最大值/最小值存入iMax/iMin中,三菱最多可比较28个数据。这个函数在我的《五子棋》游戏程序中有用到,选取一个棋子4个方向连棋数和分数的最大值。
2,MOD(取余数函数)
取余数是非常有用的函数,比如生成一个范围内的随机数时可以使用MOD对生成的数字进行限制;可以将一维数组存入多维数组时使用MOD进行设限,例如:将一维数组DataListA[0..99]的数据传递给二维数组DataListB[0..1,0..49]。
3,ABS(绝对值函数)
还有很多三角函数(sin,cos,tan)反三角函数,这里就不再演示了,用法差不多。
类型转换
类型转换的函数指令非常多,基本涵盖了所有数据类型之间的相互转换,格式基本相同。
类型转换
下面以“幂运算”为例演示用法:
由于三菱的幂运算要求实数,所以在计算前先将整数转为实数,计算后的结果也是实数,想要存入整数变量还要再转为整数。
字符串处理
字符串的处理函数经常在TCPIP通讯中用到,尤其是工业相机的应用中,种类也是非常多:
字符串处理
以常用的MID截取函数为例,讲述函数用法:解析由相机发来的字符串,包含一个产品的XY坐标和旋转角度C,存入实数变量iX,iY,iC。
MID函数
注意,字符串的空格也算一位。
输入源字符串,截取长度,截取位置,将获得的字符串转换为实数后赋值。
其他
在三菱的部件选择窗口中,可以找到非常多的系统功能块和函数:
部件选择
没有必要记住每一个函数的使用方法和名称,当你需要实现某种功能时,直接在搜索框搜索功能名称(中文就行),就会得到符合的功能块,如果不会使用可以按F1按键查看帮助。
帮助文档