结构化文本(ST)是IEC61131-3推荐的五种PLC编程语言之一,在西门子PLC中它被称为SCL语言。不同厂家的PLC产品,只要支持ST语言,其语法都是相同的。如果你熟悉西门子的SCL语言编程,也可以很容易地使用其它PLC厂家的产品。今天这篇文章,我们以汇川公司的Easy320系列PLC为例,使用ST语言编写一个简单的电机启停控制的函数。启动AutoShop,新建工程,如下图所示: 选中左侧项目树【编程】→【功能块(FB)】,单击右键。在弹出的菜单中单击【新建】,给功能块命名为“motorControl”,语言选择【结构化文本】,如下面的图片所示: 单击【确定】按钮,会创建该函数块并打开编辑器。其中上部分是变量声明区,下部分是代码编辑区,如下图所示: 变量声明区用于声明该功能块的接口(函数的形参)和内部参数,有四种类型: IN:输入参数; OUT:输出参数; IN/OUT:输入/输出参数(可读/可写); VAR:静态变量(用于程序内部);
本例程声明变量及代码如下图所示: 说明:这里将停止信号设置为常开触点,如果你设置为常闭触点,代码里的stop应该取反(实际上常闭触点的安全性更高一些)。 功能块编辑完成后,需要实例化才能使用。 实例化的方法有两种: ①双击项目树的【全局变量】→【功能块实例】,在列表中声明实例,如下图所示: ②双击右侧工具箱的【FB】下已经创建的功能块,会弹出实例化窗口,定义一个合适的变量即可,如下图所示: 实例化完成后,就可以调用实例了。 我们在子程序1中调用该实例,如下图所示: 在主程序中调用子程序1,如下图所示: 启动离线调试可以看到函数块运行正常,如下图所示: 好了,这是一个很简单的使用ST语言编写的电机启停控制的函数。如果你读过我的书或者我之前SCL的文章,就会发现代码编写都是一样的。稍微有点差别的地方是西门子的功能块还可以声明临时变量,而这里没有。不过这不影响使用。后期的文章我们会继续介绍相关的内容。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |