大部分PLC都会内置很多基本的函数和功能块供编程人员调用,而且很多具有通用性,也就是在不同品牌的PLC中,这些函数和功能块的名称、用法和功能相同,记住这些函数和功能块的名称和使用方法,能让我们编程时更加便捷。下面以三菱PLC的编辑软件GX Works3为例,展示这些函数、功能块的使用方法。

边缘检测与计时器

1, R_TRIG/F_TRIG(上升/下降沿检测功能块)

上升沿和下降沿应该是所有程序里最常用的FB(功能块)之一了,他的功能是检测一个bool变量变化的边缘,输出一个扫描周期,下面通过一个例子介绍一下我常用的命名方法和编程格式:检测开始按钮X1的上升沿, 置位Y0,检测停止按钮X2的下降沿,复位Y0。

第一步声明标签, 我个人习惯将上升沿加前缀“rt”,下降沿加“ft”:

st语言编程实例分解(ST语言编程中常用的函数)(1)

声明标签

第二步编程,FB的输入引脚赋值要在()内操作,而输出引脚可以当作变量直接使用,节省一个标签:

st语言编程实例分解(ST语言编程中常用的函数)(2)

编程格式

增加变量前缀,无论在程序的什么地方使用,都能一眼看出变量的类型,方便阅读程序。

2,TON/TOF(延时启动/关闭功能块)

延时功能块也是非常常用的FB,除了起到延时的作用,还可以用来过滤信号,起到筛选的作用,例如:使用对射光电传感器X0(阻挡时ON)检测皮带上产品缝隙,当传感器OFF时间超过100ms时报警Y0。

声明标签 :

st语言编程实例分解(ST语言编程中常用的函数)(3)

编程:

st语言编程实例分解(ST语言编程中常用的函数)(4)

3,TP(脉冲定时器)

脉冲定时器的功能是输出一个固定时长脉冲,典型的应用如报警灯的控制,举个例子:当变量bAlarm触发后,点亮报警灯Y0,要求每隔700ms亮一次,一次亮200ms,持续闪烁。

声明标签:

st语言编程实例分解(ST语言编程中常用的函数)(5)

编程:

st语言编程实例分解(ST语言编程中常用的函数)(6)

ton功能块的输入设置为自身输出的非,作用是每隔700ms生成一个单扫描周期的脉冲,tp功能块将脉冲的时长设定为200ms,并给到指示灯。

算术运算

算数运算除了常用的" ","-","*","/"(加减乘除)还有“**”(幂运算)"<","=",">"(比较)等。还有一些常用的函数可供使用。

1,MAX,MIN(最大值,最小值函数)

st语言编程实例分解(ST语言编程中常用的函数)(7)

选取最大值/最小值存入iMax/iMin中,三菱最多可比较28个数据。这个函数在我的《五子棋》游戏程序中有用到,选取一个棋子4个方向连棋数和分数的最大值。

2,MOD(取余数函数)

st语言编程实例分解(ST语言编程中常用的函数)(8)

取余数是非常有用的函数,比如生成一个范围内的随机数时可以使用MOD对生成的数字进行限制;可以将一维数组存入多维数组时使用MOD进行设限,例如:将一维数组DataListA[0..99]的数据传递给二维数组DataListB[0..1,0..49]。

st语言编程实例分解(ST语言编程中常用的函数)(9)

3,ABS(绝对值函数)

st语言编程实例分解(ST语言编程中常用的函数)(10)

还有很多三角函数(sin,cos,tan)反三角函数,这里就不再演示了,用法差不多。

类型转换

类型转换的函数指令非常多,基本涵盖了所有数据类型之间的相互转换,格式基本相同。

st语言编程实例分解(ST语言编程中常用的函数)(11)

类型转换

下面以“幂运算”为例演示用法:

st语言编程实例分解(ST语言编程中常用的函数)(12)

由于三菱的幂运算要求实数,所以在计算前先将整数转为实数,计算后的结果也是实数,想要存入整数变量还要再转为整数。

字符串处理

字符串的处理函数经常在TCPIP通讯中用到,尤其是工业相机的应用中,种类也是非常多:

st语言编程实例分解(ST语言编程中常用的函数)(13)

字符串处理

以常用的MID截取函数为例,讲述函数用法:解析由相机发来的字符串,包含一个产品的XY坐标和旋转角度C,存入实数变量iX,iY,iC。

st语言编程实例分解(ST语言编程中常用的函数)(14)

MID函数

注意,字符串的空格也算一位。

输入源字符串,截取长度,截取位置,将获得的字符串转换为实数后赋值。

其他

在三菱的部件选择窗口中,可以找到非常多的系统功能块和函数:

st语言编程实例分解(ST语言编程中常用的函数)(15)

部件选择

没有必要记住每一个函数的使用方法和名称,当你需要实现某种功能时,直接在搜索框搜索功能名称(中文就行),就会得到符合的功能块,如果不会使用可以按F1按键查看帮助。

st语言编程实例分解(ST语言编程中常用的函数)(16)

帮助文档

,