SFC编程在TOYOPUC中应用的实例详解
一、SFC编程用语
SFC(Sequencial Function Chart)是通过使用多种图表对象,对生产过程中一系列工程简单地表现出来,类似流程图。历来LD、ST等编程方式不容易分析和判断“设备的各个部件的动作进展状况”,流程图是一种使动作进度成为可视化的工具。但传统的SFC编程思路和架构一般不考虑:自动运转中出现故障重启的处理方式、在主SFC进程中调用子SFC(类似功能块,数量允许的情况下在主SFC进程中随处可以调用同一子SFC)、稍微复杂的SFC程序里如何考虑步骤的重复转移(类似跳转功能)。本文以TOYOPUC(丰田工机)的PC10G系列PLC的实际案例介绍下如何考虑这三个方向。TOYOPUC主要的SFC用语如下图:
重点我们说下:子SFC(子过程)、并列、激活状态/非激活状态。 一台设备有多个机械部件组成,例如汽车生产线上的升降机有:升降电机(简称DL)(有上升、下降动作)、输送的滚筒线(简称CV)、阻挡器机构((简称ST)、升降机的定位锁气缸(简称TU)。在一个SFC流程内,不同分支执行中会有相同的动作。例如DL上升动作,在分支1执行过程中有DL先上升到位(命名为“步11”)后执行CV运转等,在分支3执行过程中也有DL先上升到位(命名为“步21”)后执行CV运转等;把DL上升动作做成一个子SFC,子SFC在同一个过程中是可以重复使用的,在不同分支执行顺序中都可以执行 “DL上升子SFC”,这样用一个“DL上升子SFC”就可以代替原来的“步11”、“步21”、、、。熟练把某些动作流程打包成一个子SFC,可以使SFC整体程序更加简洁。并列有并列分支和并列汇合,平行分支线是用2根横线来表示。如下图,并列分支前的步骤1激活时,如果转换条件1成立,则向步骤2和步骤3同时过渡(即步骤2和步骤3同时进行处理)。需要注意的是并列汇合时,如果步骤2激活,步骤3没有激活,即使转换条件2成立也不会向步骤4过渡。并列汇合要求上一步骤要全部激活时,并列汇合的转换条件成立,才能向下一步骤过渡。在实际调试中发现转换条件已成立了,SFC不能继续往下执行,可能需要关注这个问题点。
激活状态: 可以执行动作的状态;非激活状态: 不可以执行动作的状态。在SFC中,步骤是一种执行单位,某一步骤成为非激活状态时动作也随即全部同时结束。在编程软件监控SFC程序或触摸屏监视SFC程序时,不同状态有不同的颜色指示,如下图。
二 、TOYOPUC的SFC编程软件和注意点
PC10G是TOYOPUC中大型PLC,使用PCwin编程软件。PCwin可以建立子程序、导入FB库、建立SFC动作流程、导入IO图纸、多语言切换等功能。
SFC程序是以步骤为单位进行执行,软件上要能做到进行到某一步骤时,由于报警等突然退出自动运转。恢复自动运转后,SFC程序能继续执行之前中断的步骤。PCwin在SFC编程上,需要用的2个FB块,FB14和FB15,这2个块是一定要使用的。如下图,FB14是用于PLC上电第1扫描ON时,将SFC输出信号领域全部清零;
FB15是用于控制哪个SFC进程可以运行。如下图,PLC运行时,SFC进程1是一直在运行。当M2C1=1时,SFC进程10才能运行,而进程10不运行时FB也会将对应的SFC输出领域全部清零。
三、TOYOPUC的SFC编程实际案例基本介绍
以汽车厂总装车间的座椅输送线为例,我们介绍下实际应用案例(座椅输送线简称SE)。座椅生产厂家用卡车将座椅运到总装车间的SE设备入口,SE设备负责接收卡车上的座椅(一卡车一般是20套座椅),然后将座椅输送到车间的汽车座椅安装工位。汽车厂的大部分输送系统都在循环输送某类工件,我们先了解下SE循环输送工件:座椅托盘,如下图。
我们以SE设备中的一台升降机(编号DL2)来详细介绍SFC编程的思路。如下图是DL2的平面布局,DL2双侧带CV滚筒输送机。DL2在下降位(地面)时CV7搬入CV6里带座椅的托盘,CV8搬出空托盘至CV24内;DL2在上升位(二楼平台)时CV7搬出带座椅的托盘至CV9内,CV8搬入CV23里的空托盘;TU06和TU07的作用是DL2在上升位时,机械气缸锁定住DL2,防止DL2抱闸等故障突然下坠。
下图是现场照片
先以初始状态、单动作模式来分析下DL2的主要动作模式:托盘从CV7搬出至CV9(简称CV7搬出)、托盘从CV6搬出至CV7(简称CV7搬入)、托盘从CV8搬出至CV24(简称CV8搬出)、托盘从CV23搬出至CV8(简称CV8搬入);
DL2上升/下降、ST打开/关闭等都是准备/收尾步骤,最主要的步骤是运转电机进行搬入/搬出。我们以主要步骤来定义6种动作模式
四、升降机DL2的SFC编程
通过以上的基本介绍,6种动作模式是有重复的步骤。例如模式1,要执行DL2上升步骤;模式3,要执行DL2上升步骤;根据动作分析,建立6个子SFC:
这6个子SFC,在DL2的SFC进程中,可以认为就是一个基本单元:步骤。根据6种动作模式的准备步骤,在DL2的SFC的初始步往下的流程定义了4个主要选择分支:
主分支1的流程如下图,转换条件TR1135满足后,又回到DL2初始步。
主分支2的流程如下图,转换条件TR1165满足后,又回到DL2初始步。
主分支3的流程如下图。
主分支4的流程如下图。
五、执行SFC程序中突然退出自动运转,恢复自动运转后,如何回到之前的步骤
以主要分支3为例,SFC执行到SUB021(CV7搬出子SFC)时,由于报警等原因,DL2退出自动运转。
恢复自动运转后,DL2的SFC程序入口是从DL2的初始步ST1100进入。
方式1是以主要动作步骤来定义4个记忆,如下图
K型数据地址是断电保持型,SUB021(CV7搬出子SFC)开始执行时K112(CV7搬出中记忆)置位=1;除人为复位外,只有SUB021执行完成后K112才会复位=0;通过K112的记忆,去构造相关条件,就可以实现恢复自动运转后,DL2的SFC程序要恢复到SUB021这个步骤的相关转换条件可以满足。 方式2是在要相关的动作步骤增加判断,如已经完成这个动作就可以跳转到下个步骤。以DL2上升子SFC(SUB011)为例,如下图:
六、相关总结
SFC程序注重流程可视化,配合丰田工机的触摸屏,可以快速监视SFC程序的当前状态,并且可以通过点击切换到转换条件内部程序,快速确认设备故障、不动作原因;SFC程序框架并不复杂,首先要清晰的分析出设备的动作流程。根据主要动作来确定动作模式,根据不同动作模式的步骤确定重复步骤,进行打包成子SFC,在不同动作模式下调用子SFC。以模块式思路来搭建SFC程序框架后,进行SFC程序修改、优化是比较简单的。例如动作模式3 仅CV7搬出完成后(TR1182转换条件满足),原SFC程序是转移到初始步,如此时没有动作需求,DL2升降机是停在二楼平台。在该工况下DL2升降机左右2侧都是空席,业主的需求是希望此时DL2应该下降到地面等待CV7搬入,这样对座椅上件的节拍有利。增加DL2下降动作很简单,在TR1182转换条件下一步进入SUB012(DL2下降子SFC),下降到位后再转移到初始步。按照这个想法来修改忽略了一个情况,如果CV7搬出完成后,CV7搬入条件还未满足,而CV8具备搬入可条件,此时DL2是没必要执行下降动作,再上升到二楼平台执行CV8搬入。应该在TR1182后增加一个虚拟步来判断应该是直接下降到位,还是直接进行CV8搬入动作。其SFC的修改增加1个虚拟步,增加3个转换条件和1个转移目标。在LD程序中就是增加3行转换条件的程序内容。
七、末
JTEKT(捷太格特)是日本丰田和光洋等公司合作创办的企业,主要生产汽车轴承、转向系统、机床等。TOYOPUC(国内简称丰田工机)是JTEKT的机电一体化的控制器系列品牌(官方网址:https://toyoda.jtekt.co.jp/c/products/mecha.html)。有TOYOPUC小型、中型、大型、安全PLC、远程模块、通信模块、触摸屏、运动控制器等产品。相关通信协议有FL-远程、FL-net、以太网等。国内基本只有一汽丰田和广汽丰田的工厂在使用TOYOPUC控制器产品,而且由于价格较昂贵,对比其他日本品牌如三菱、欧姆龙等,没那么让大家熟悉。可能大家刚开始接触TOYOPUC PLC时,会感觉不太习惯,但慢慢的会发现其产品的使用理念和丰田公司精细化管理的理念很相似。特别注重安全、解决故障的效率、程序功能上的统一性。
本文参考资料《TOYOPUC SFC使用说明书:程序设计篇》本文部分照片、资料出自相关设备厂商,纯为学习、交流之用,如有侵权麻烦联系删除,谢谢!
如何使用三菱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的控制一般组态王信号采用I/O离散变量在编写PLC程序的时候可以...
plc虚拟轴啥意思?
PLC虚拟轴是指通过PLC编程,将多个物理轴整合成一个虚拟轴,以便更加灵活地控制机器人、自动化生产线等复杂系统的运动和定位。通过PLC虚拟轴,可以实现一个控制...
想自学信捷PLC编程,怎样入门?
可以通过以下方式入门:明确可以通过在线公开课、教程等途径进行自学信捷PLC编程。自学PLC编程不需要太多专业知识和设备,只需要一台电脑和PLC及软件模拟器就可...
如何从零开始学好PLC?
.还有种情况就是之前一直是做电气电工安装,装配之类,设备维护的工作,这两种情况在学习的时候是有所区别的。第二,如果说你之前做的工作完全是和电气行业没有...
远程控制plc的方法?
PLC远程监控故障诊断、程序升级工作若由人工完成,既增加企业售后成本,也降低了企业生产效率。此外,设备工作详情无法实时监测、数据无法沉淀使用、远端组态效...
如何远程将自己的电脑连接到plc设备电脑上?
远程PLC通讯需要以下条件1,一般使用VPN----虚拟专用网络(VirtualPrivateNetwork),搭建这个平台的方式有很多,可以参考以下带VPN功能的路由器或搭建服务器...
台达的触摸屏软件在仿真时候怎么和仿真中的台达PLC软件进行连接综合模拟?
你先用串口调试助手看看台达PLC在仿真串口有没有数据,如果有的话就用虚拟串口工具虚拟出一对串口,一个串口号给PLC,一个给HMI软件,然后同时在线模拟就可以了...
博图v15与Wincc该如何进行仿真?
上边我的PLC--CPU型号是1515,所以这里要添加一个S7-1500的通道驱动。驱动建立好之后,就可以建立连接了,见下图:建立好驱动后就会出现S7-1500channel,下...至.....
谁明白!如何让电脑模拟触摸屏控制plc?,马赛克模拟屏好上手吗??
[回答]欧姆龙的啊把变频器的模拟量输入接到plc的模拟量输出就可以了啊这是硬件连接其他的就是要编写plc模拟量输出程序和设置变频器的参数至于你想...
用虚拟机如何连接PLC-189****4681的回答-懂得
我现在装的VM虚拟机,连接S7-200,S7-300,三菱FX,Q系列,台达PLC都没有问题,但是连接欧姆龙PLC就是无法连接,驱动没有问题,同样的驱动在主机连接都没有...