首页 理论教育 如何优化PLC编程语言?

如何优化PLC编程语言?

时间:2023-06-30 理论教育 版权反馈
【摘要】:PLC编程语言有梯形图、指令表、逻辑功能块图、顺序功能图以及BASIC、Pascal、C或结构化文本等。绝大多数采用中小型PLC的机电一体化设备、数控机床目前多采用梯形图进行编程。部分无法利用梯形图及其他编程语言无法表示的程序,只有使用指令表才能编程。

如何优化PLC编程语言?

PLC编程语言梯形图、指令表、逻辑功能块图、顺序功能图以及BASIC、Pascal、C或结构化文本等。绝大多数采用中小型PLC的机电一体化设备、数控机床目前多采用梯形图进行编程。

1.梯形图

梯形图(Ladder Diagram,简称LAD)是一种沿用了继电器触点、线圈、连线等图形符号的图形编程语言,它在PLC编程中最为常用。梯形图编程时,程序中的操作数以触点、线圈等图形符号代替,逻辑操作指令“与”、“或”用触点的串、并联表示;逻辑“非”用“常闭”触点进行表示;逻辑运算结果用“线圈”表示,其程序形式与继电器-接触器控制电路十分相似。

梯形图程序的最大特点是通俗易懂,不同厂家生产的PLC程序形式类似,阅读与理解非常容易,而且还能够进行图2-12所示的动态监控,其程序形象、直观,并能反映触点、线圈、线路的通/断情况。

978-7-111-48905-4-Chapter02-12.jpg

图2-12 梯形图动态监控显示

图2-12中,加粗的显示代表触点、线圈、电路已接通,它清晰地反映出内部继电器M0.1、输出Q0.1的状态为1;而M0.2由于I0.3未接通而输出0状态;Q0.2由于M0.2触点未接通而输出0状态;图形简单明了、程序检查与维修十分方便。

梯形图编程除常用的图形符号外,还可使用部分区别于继电器触点控制电路的编程指令,如边沿信号、置位/复位、定时/计数等。此外,梯形图程序的执行过程也与继电器电路有本质的区别,具体内容将在后续的章节中予以详细介绍。

2.指令表

指令表(Statement List,简称STL或LIST)是一种使用助记符的PLC编程语言,它类似于计算机的汇编语言,但它比汇编语言通俗、易懂。指令表在PLC各种编程语言中应用最早,它是PLC最基本的编程语言,任何PLC指令都可使用指令表进行编程。部分无法利用梯形图及其他编程语言无法表示的程序,只有使用指令表才能编程。

指令表程序可使用简易编程器进行编辑;当梯形图编程错误时,有时需要将其转换成指令表后,才能进行修改,因此,即使采用梯形图编程的PLC,目前仍离不开指令表。

指令表程序的每条指令由“指令代码”与“操作数”两部分组成,为了实现程序跳转,指令前还可能增加有跳转标记。指令表编程时,程序中的状态读入、“与”、“与非”、“或”、“或非”、“输出”等指令代码,在不同PLC上可以用LD、A、AN、O、ON、=或RD、AND、AND.NOT、OR、OR.NOT、WRT等简单助记符表示,而输入、输出、内部继电器等则可用I0.1、Q0.2、M0.1或X0.1、Y0.2、R0.1等操作数表示。例如,图2-12所示的梯形图程序在SIEMENS公司生产的PLC中,其指令表程序如下。

978-7-111-48905-4-Chapter02-13.jpg

3.逻辑功能块图

功能块图(Function Block Diagram,FBD)又称控制系统框图(Control System Flowchart,CSF),这是一种沿用了电子线路的逻辑门、触发器、连线等图形符号的图形编程语言,是DIN 40700(德国)标准规定的编程语言。

采用功能块图编程时,PLC程序中的“与”、“或”、“非”、置/复位、数据比较等操作均可用电子线路中的“与门”、“或门”、“非门”、“RS触发器”、“数据比较器”等图形符号表示,程序形式如图2-13所示,它与电子线路十分相似。(www.xing528.com)

功能块图同样具有直观、形象的特点,特别有利于具有电子技术基础的人员阅读与理解。功能块图还可用触发器、计数器、比较器等电子线路符号,形象地表示其他图形编程语言无法表示的PLC应用指令。

功能块图的程序简洁、结构紧凑、逻辑关系清晰、显示容易,在表示多触点串联等逻辑运算时,同样一页显示页面,可显示比梯形图更多的信息。

功能块图的动态检测与梯形图同样形象、直观,因此,在具备功能块图编程功能的PLC上,采用功能块图编程往往比梯形图编程更加简单、方便。

4.顺序功能图

顺序功能图(Sequential Function Chart,SFC)是一种按工艺流程图进行编程的图形编程语言,适合于非电气专业的技术人员使用,近年来已开始逐步推广。

顺序功能图的设计思想类似于子程序调用。设计者首先按控制要求,将机床的动作划分为若干工步(简称步),并通过不同的编程元件(称状态元件),对每一步赋予独立的标记。程序编制时,只需要明确每一步需要执行的动作及条件,程序中可利用控制条件对相应的状态元件进行“置位”或“复位”,便可选择需要的执行工步。

SFC编程总体是一种基于机械控制流程的编程语言,但各公司产品的实现方式有所不同。例如,三菱公司采用的是图2-14所示的“步进梯形图”编程方式,这种编程方法具有SFC编程同样的特点,程序执行都是根据控制条件,来选择相应的步,而每一步的动作则采用了梯形图进行编程。

采用SFC编程时,程序设计者只需要确定机械的动作和条件,利用分支流程对程序步进行组织与管理,便可完成程序设计。因此,它无须像梯形图编程那样,需要在程序中进行互锁等处理,它对设计人员的要求相对较低,容易被非电气技术人员掌握。

除以上常用编程语言外,在一些大、中型PLC上,为了完成复杂的控制功能,通常需要采用功能强大的CPU与大容量存储器,并具有开关量逻辑处理、模拟量处理、数值运算、通信等功能。这种PLC有时需要通过计算机常用的BASIC、Pascal、C等高级语言,进行结构化编程。

978-7-111-48905-4-Chapter02-14.jpg

图2-13 功能块图程序

978-7-111-48905-4-Chapter02-15.jpg

图2-14 SFC程序示例

BASIC、Pascal、C等语言的编程方法与计算机类似,但在不同公司生产的PLC上,其格式、功能有所区别,使用时应根据PLC说明书进行编程,由于它在数控机床上使用较少,本书中将不再对此进行介绍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈