如何使用三菱ST语言编写一个完整的项目程序,照着写就能成功
哈喽,大家上午好呀!
今天给大家带来如何使用三菱ST语言编写一个完整的项目程序 。
本文作者:陆冯
【本文如有不足之处,请各位高手指点】
众所周知,目前类似于C语言的ST结构化文本语言,已经成为了目前工控行业PLC编程的主流发展趋势。目前,三菱、西门子、施耐德等各大PLC厂商的编程软件,包括国产PLC所采用的CODESYS软件,这些编程开发平台均支持ST结构化文本语言。例如:西门子的SCL、三菱的ST等等。
当然,各家之间只是叫法不一样,但是本质上都是一样的。各家PLC厂商的ST结构化文本语言和C语言非常类似,并且符合IEC-61131-3国际电工委员会规定的标准,像定时器、计数器这些软元件,都有标准的数据结构和形式。因此,ST结构化文本语言,有着“支持跨平台移植”的独特能力,在它的面前,所有的PLC众生平等,不再有品牌之分,只要写一遍程序,就可以同时下载进入不同厂商生产的PLC,实现同样的功能;另外,ST结构化文本语言,也有着在“复杂数据运算处理”方面的天然优势。
那么,【西门子的SCL语言】或者【三菱的ST语言】好学吗?难吗?好用吗?为了回答这些问题,我特意今天给大家写出这样一篇文章,以FX3U小型PLC控制分拣设备为例,详细阐述三菱ST语言的在项目中的使用方法,并对程序进行详细的解析。
(设备总体视图)
正文开始:
内容目录
一、程序架构
二、详细程序解释
(注意:本文中全部程序是面向智控教育新北校区的物料分拣设备所编写的,不适用于世界上任何其他设备)
首先我们明确一点,我们要做的,是让这个设备安全、正确、高效 地运作起来。这是我们的唯一目的!那么为了这个目的去进行PLC编程调试。一个好的电气工程师编写出来的程序,应当具有:安全性、正确性、高效性、移植性和扩展性。PLC程序其实就是人的意志的延伸,你的思维和意识基本决定了这台设备是个傻瓜,还是聪慧过人,当然,这个世界上不可能有完美的程序.......
一、程序架构
为了我们的设备能够正常运行,我们将程序分为以下几个部分:
IO映射程序:
负责PLC输入输出虚拟地址与实际地址的映射。这样的做法,可有效降低PLC某个触点在损坏后,现场维修人员的工作量;并且,我们在本文第二章中,将详细讲解如何借助IO映射实现暂停和设备定时停机功能。
手动程序:
负责在设备进入手动状态后,对各个执行机构的手动操纵。
自动程序部分又分为6个小部分:
1.复位程序:
负责执行设备的复位,并对设备复位完成情况进行判断。
2.急停程序:
负责执行设备的紧急停止,该程序在被调用后,设备将无条件立即停止运行,所有机构停止运动,并保持当前位置不动,等待用户确认后,按下“复位按钮”进行设备复位。
3.暂停程序:
负责设备的暂时停止,该程序在被调用后,设备将无条件立即停止运行,所有机构停止运动,并保持当前位置不动,等待用户按下“启动按钮”进行重新启动,设备将继续去执行没有完成的任务,接着暂停前的流程继续正常运行。
4.预停程序:
负责执行设备的预先停止,该程序在被调用后,设备将在搬运完一个工件,也就是完成一个周期的顺序动作后立即停止运行,所有机构停止运动,并保持当前位置不动,等待用户确认后,按下“复位按钮”进行设备复位。
5.统计程序:
负责设备的完成工件数量的计数,并将数据存储到对应的数据寄存器中;同时为我们这套系统的1分钟工件完成趋势曲线提供参照数据。
6.顺控程序:
作为承载和配合以上4个子功能程序的主体,它负责对设备各个状态下的机构控制,但是也是最好写、行数最多的程序。
二.详细程序解释
1.实际输入信号X的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Bit”(位数据类型),并指定输入软元件X的编号,GXworks2软件会自动调出对应的X输入软元件地址。
2.实际输出信号Y的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Bit”(位数据类型),并指定输入软元件Y的编号,GXworks2软件会自动调出对应的Y输出软元件地址。
3.IO映射数据的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Bit”(位数据类型),并指定输入软元件M的编号,GXworks2软件会自动调出对应的M辅助继电器的软元件地址。
注意:在ST语言的全局标签建立过程中,可以不指定绝对地址,但是我们为了方便上位机HMI从PLC中读取各个信号的数据,要进行绝对地址指定,否则程序就会多出一个子程序部分,用这个子程序把数据传到绝对地址中,用来对监控信号的抓取操作,这样就不可取了,还不如直接在这里指定。
4.开关量数据(0/1标志位)的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Bit”(位数据类型),并指定输入软元件M的编号,GXworks2软件会自动调出对应的M辅助继电器的软元件地址。
注意:这些“0/1标志位”的建立,是为了ST语言程序在设备动作中,存储设备的动作完成信号、物料判别信号、系统中断信号、下一步动作许可信号等程序数据。
5.数字量数据(“字”数据类型状态存储器)的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Word”(“字”数据类型),并指定输入软元件D的编号,GXworks2软件会自动调出对应的D数据寄存器的软元件地址。
注意:这些“字”数据类型状态存储器的建立,是为了ST语言程序在设备动作中,存储设备的状态信号、完成个数、周期数量统计等程序数据。
6.HMI交互数据的全局标签建立
在全局标签中,建立类别为“全局标签-变量”,并设置对应的“标签名”,数据类型选择为“Bit”(位数据类型),并指定输入软元件M的编号,GXworks2软件会自动调出对应的M辅助继电器的软元件地址。
注意:这些“HMI交互数据”的建立,是为了PLC与上位机HMI之间的信号交互,主要是操作按钮,也是这台设备实现“人机交互”的关键一步。
7.IO映射、设备暂停程序的编写
将实际输入X软元件的状态,通过赋值语句传递到PLC内部我们建立的“I映射数据”;将PLC内部的“O映射数据”通过赋值语句传递到实际输出Y软元件。
注意:我们在“输出映射”程序段中,IF语句的执行条件被设为“暂停标志”的不得电状态,如果我们将“暂停标志”设置为1,设备将不再进行输出信号的数据更新,PLC所有实际输出软元件Y,将保持“暂停标志”为1前的状态,保持当前位置不动,从而实现设备暂停的功能。
PS:当然我们可以使用“级联方式”对时间继电器编程,自由设置一段时间,当时间到了之后,将“暂停标志”设置为1,设备将不再进行输出信号的数据更新,从而实现“设备的定时停机”。当然,这只是IO映射程序的一种特殊用法,希望能帮助到大家。
8.初始化程序的编写
当设备上电时,所有输出全部复位,为设备运行做好准备。
9.手动程序的编写
当设备处于手动状态时,上位机HMI交互数据(也就是触摸屏上的按钮),将分别控制每个执行机构动作,实现对设备的手动操纵。
10.复位程序的编写
当设备处于自动状态,并按下复位按钮时,系统状态将置为2,系统执行复位,在满足所有复位条件(所有机构的复位信号传感器得电)的情况下,将证明系统复位已经完成,系统状态将变为3,设备进入等待启动状态。
11.顺控程序的编写
主要是,一步一步走下去,正确地操作状态的转移和标志位的更新,就可以完成任务了。我们的顺序控制程序,主要分为3个部分,每个部分之间,依靠标志位进行信息的交换,这些交换的数据内容有很多,比如:设备的动作完成信号、物料判别信号、系统中断信号、下一步动作许可信号等。
顺序控制程序,需要把“0/1标志位”和“字”数据类型状态存储器的配合使用,烂熟于心,因为顺控程序承载的是整个程序的主体,其他所有的功能都是在这个主体上建立的,这个程序要是写不好,基本什么都没戏了。
12.急停、预停程序的编写
当接收到“急停”或者“预先停止”信号时,系统将判断在何时,将顺序控制程序的“字”数据类型状态存储器置为“1”,让设备进入停止状态,设备将从顺序控制的自动运行状态中跳出,不再继续向下执行,PLC所有输出软元件保持当前状态不动作,0依旧为0、1依旧为1,所有机构不会再动,由此可以实现设备的安全停止,防止对人员的二次伤害。
13.统计程序的编写
根据程序中抓取到的信号标志位,并配合“字”数据类型状态存储器,实现对物料分拣总数量的统计;通过定时器T20定时,每隔1分钟对“一分钟统计个数产能”清零,为上位机HMI的统计趋势曲线提供数据依据。
到这里,我们的“智控分拣设备ST语言程序”就全部解释完了。
如果大家对三菱ST语言感兴趣,可以来常州智控教育学习,这里有配套完整、功能先进的教学设备,有认真负责、一丝不苟的专业老师,能够帮助您在工控之路上,走得更快、更远!!!
PLC编程规范--功能块编程(第三讲)
目的: 规范自动化设备PLC控制器编程方法,以利于后续产线设备的维护与管理。
一、 功能块编程
a) 编程语言
采用复合 IEC6113-3 标准的编程语言进行 PLC 程序设计,应首选 LAD 作为块的编程语言,因为 编程语言 LAD 可为维护人员提供更轻松的诊断和更快速的修改。
b) 编程规则
1. 功能块程序避免访问全局常量。否则,该模块将无法再模块化使用。
2. 数据块始终存储在CPU的RAM中。仅在特殊情况下才允许使用装载存储器存储数据块。
3. 优选使用多实例代 替单实例。
4. 功能块之间数据访问通过输入输出接口访问。
c) 注释
1. 块注释
块注释必须 以一行或几行的形式放在相应代码段的前面。每个块注释内容格式包含以下各项。
Ø 公司名称
Ø 库名称
Ø 已测试固件版本的 PLC(例 如 S7-1511 V1.6)
Ø 创建时的软件版本
Ø 使用限制(例如某些 OB 类型)
Ø 要求(例如,其他硬件)
Ø 功能说明
Ø 带有作者和日期的图块版本
如图 1 所示
(图1 块注释)
2. 线路注释
如果可能的话,必须在代码行的末尾添加行注 释,或者,应在相应代码行的前面添加注释。
d) 功能块引脚
1) 输入输出没有前缀;
2) 通过块接口进行数据交换;
3) 如果多个FB或FC中需要数据,则通过块接口(输入,输出和InOut接 口)处理数据交换。禁止直接访问FB外部的静态变量;
4) 对于基本数据类型(例如WORD,DWORD,REAL, INT,TIME类型),应使用输入或输出接口类型;
5) 对于基本数据类型,仅当在块的外部和内部写入时才使用 InOut接口类型;
6) 如果传输了许多参数,则应尝试将 它们封装在PLC数据类型中。然后,应将此PLC数据类型声明为InOut标记;
7) 对于结构化标签(例如,ARRAY,STRING等类型) 和PLC数据类型,通常应使用InOut接口类型;
e) 标签声明
静态和临时: 为了能够从代码中的传输和输出参数中清楚地分离出静态和临时标签,使用 标签前缀。前缀静态标签:stat;临时标签:temp;
f) 具有执行的块
流程从 execute 参数的上升沿开始,并采用输入参数中的未决值。
输入输出信号时序图如下图 2 。
(图2 输入输出时序图)
1) 使用Execute下降沿 重置Error和Commandaborted。
2) 执行时,FB的功能不会随着Execute下降沿而终止。
3) 如果Execute已经为FALSE,并且Busy为False,仅Error和Commandaborted 等待一个周期。
4) 当块仍在执行时,请求执行时具有上升沿的新作业。
5) 如果处理作业被更高优先级或同等优先级的 作业(另一个块/实例的中断)中断,则Commandaborted由该块设置。它立即中断剩 余的作业处理。
g) 启用块
设置启用参数将启动作业。只要保持启用设置,作业处理就处于活动状态,并且可以采用新值并连续对其进行处理。重置 enable 参数将终止作业。如果启动了新作业,则该块将进入其初始状态,并且可以全新地进行切换和配置,如下图 3,4 所示。
(图3 功能块示意)
(图4 作业时序图)
1) Error为True复位并停止FB的所有功能。如果FB能够自动复位,Busy 仍为True
2) 消除错误后,FB状态恢复
3) 错误必须由用户处理的错误,需停止FB功能,同时复位Busy状态。
4) 使能为False时Error停止输出。
5) Valid 为TRUE表示该块已激活,没有待处理 的错误,并且因此,FB的输出有效。
6) Enable为False,复位FB所有输出。
7)
《PLC编程规范》完结,更多干货后续持续更新,这些都是我们在给客户编写程序必须要遵循的编程标准,大家可以收藏使用,如果遇到问题或者不能理解的地方可以私聊或评论留言;
希望大家可以支持小编,你们的支持是我最大的动力,如果觉得小编写的文章有用请记住我们是智控教育团队的技术老师,我们正在全新的改革PLC培训的风气,将正在实用的技术分享给工控人,而不是理论性的去抄一抄,制作那些没有营养的文章;
下一个专题:《设备安装标准化规则》 规范定义设备的外观、机械、电气及设备配件的统一型号等相关标准,使设备标准化、目视化、规范化,保证生产稳定进行。
相关问答
技成网教学靠谱吗?
靠谱。技成有100多门专业课,3000多个课时,技成的课,特别适合PLC编程入门。线下实操教学主要是由技成实训联盟举办的,旗下有19个遍布全国的实训点。分别是:武...
帮个忙朋友们!谁了解!达州靠谱的三菱PLC培训中心,三菱PLC培...
[回答]三菱PLC视频教程免费下载三菱FX系列PLC的N-N网络视频教程三菱FX系列PLC和变频器数据网络通信技术视频教程你自己到这个网站下载:3W。mcudata。com...
麻烦老铁们!谁清楚:重庆渝北区正规plc专业技能培训选哪家,p...
[回答]plc不是一两天就能学好的,要想好啊,正所谓男怕入错行,女怕嫁错男;选行业是很重要的,像如果你有一定的基础的话就去找个好点的培训机构系统学学,如果...
智控教育靠谱吗?
智控教育非常的靠谱。作为一家专业从事PLC培训多年的教育机构,智控教育在常州乃至整个江苏都享有不错的声誉,与此同时,还有全国各地的学员慕名而来。而智控...
帮个忙大侠们急!急!急!常州正规PLC控制柜厂家排名,PLC控制...
[回答]就是要保证输出点在程序运行中确定输出了,别有双线圈问题导致条件触发,实际并没输出。3、测量一下PLC输出点信号,是否有电压变化。我们和嘉善剑桥...
Bopp招聘设备维修电气工程师..._电气工程师_帮考网
职位描述:1.负责设备的维护、保养、检修及故障排除工作;2.负责设备电气控制系统的维护、保养、检修及故障排除工作;3.负责设备电气控制系统的改进和...
老铁们请回答常州求购工业智能控制器区别,工业智能控制器...
[回答]是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为ModbusMaster,从设备方使用的协议称为ModbusSlav...一般将主...
在座的好基友,询问一下!正规的西门子变频器培训多少钱,西...
[回答]0常州金坛西门子PLC培训/编程培训要多少钱呢?PLC培训西门子PLC培训西门子S7-200PLC西门子PLC编程西门子PLC培训套餐一(西门子S7-200PLC编程培训...
大仙们,求指教:常州罗克韦尔AB触摸屏维修在哪里?
[回答]是两家公司。GE和罗克韦尔是两家有所不同的公司,AB(Allen-Bradley)是罗克韦尔自动化辖下的一个最重要品牌。两家公司的PLC也不一样。ABPLC现在主...
急求电动调节阀门开不到位的原因-盖德问答-化工人互助问答社区
法门卡住了啊没什么大问题一般都是限位开关造成的,调一下就可以是不是自动运行时有连锁plc常州天勤阀门电动装置