0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PLC软件系统中常用的编程语言整理

新机器视觉 来源:机械教程网 作者:机械教程网 2021-05-11 09:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PLC软件系统中常用的编程语言整理

一、外部输入设备的选用与PLC输入继电器的使用

1.外部输入信号的采集

PLC的外部设备主要是指控制系统中的输入输出设备,其中输人设备是对系统发出各种控制信号的主令电器,在编写控制程序时必须注意外部输入设备使用的是常开还是常闭触点,并以此为基础进行程序编制。否则易出现控制错误。

在PLC内部存储器中有专用于输入状态存储的输入继电器区,各输入设备(开关、按钮、行程开关或传感器信号)的状态经由输入接口电路存储在该区域内,每个输入继电器可存储一个输入设备状态。

PLC中使用的"继电器"并非实体继电器,而是"软继电器",可提供无数个常开、常闭触点用于编程。每个"软继电器"仅对应PLC存储单元中的一位(bit),该位状态为"1",表示该"软继电器线圈"通电,则程序中所有该继电器的触点都动作。输入继电器作为PLC接收外部主令信号的器件,通过接线与外部输入设备相联系,其"线圈"状态只能由外部输入信号驱动。输入信号的采集工作示意图如图1。

56e7d2f6-b1d6-11eb-bf61-12bb97331649.png

图1PLC输入信号采集示意图

图1中,输入设备选用的是按钮SB0的常闭触点,输入继电器X0的线圈状态取决于SB0的状态。该按钮未按下时,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作,即常开触点接通,常闭触点断开;

若按下该按钮,则输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均恢复常态。如果输入继电器连接的输入设备是按钮SB0的常开触点,则情况恰好相反:在该按钮未按下时,输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均不动作;若按下该按钮,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作。

2.停车按钮使用常闭型

由于PLC在运行程序判别触点通断状态时,只取决于其内存中输入继电器线圈的状态,并不直接识别外部设备,因此编程时,外部设备的选用与程序中的触点类型密切相关。这是一个在对照电气控制原理图进行PLC编程时易出现的问题。最典型的例子是基本控制--"起保停控制"中的停车控制。

56f2f168-b1d6-11eb-bf61-12bb97331649.png

图2 "起保停控制"电气原理图

图2为"起保停控制"电气原理图,在该系统中,按钮SB0用于停车控制,因此使用其常闭触点串联于控制线路。SBl为起动按钮,使用其常开触点。若使用相同的设备(即停车SB0用常闭触点,起动SBl用常开触点),利用PLC进行该控制,则需编程梯形图程序(图3):

56fd7cfa-b1d6-11eb-bf61-12bb97331649.png

图3

"起保停控制"梯形图程序(停车按钮使用常闭触点)

I/O分配:SB0--X0,SBl--Xl,输出Y0

该梯形图中停车信号X0使用的是常开触点串联在控制线路中,这是因为外部停车设备选取按钮常闭触点所致,不操作该按钮,则输出Y0正常接通,若按下该按钮,输出Y0断电。

3.停车按钮使用常开型

若希望编制出符合我们平时阅读习惯的梯形图程序(图4),则在选用外部停车设备时需使用按钮SB0的常开触点与X0相连。

图4 "起保停控制"梯形图程序(停车按钮使用常开触点)I/O分配:SB0--X0,SBl--Xl,输出Y0

图3、4梯形图完成相同的控制功能,程序中停车信号X0使用的触点类型却不相同,其原因就是连接在输入继电器X0上的外部停车按钮触点类型选用不同。图4所示梯形图程序更加符合我们的阅读习惯,也更易分析其逻辑控制功能,因此在PLC构成控制系统中,外部开关、按钮无论用于起动还是停车,一般都选用常开型,这是一个在使用PLC时需要格外注意的问题。

二、PLC的"串行"运行方式与控制程序的编制

PLC与继电接触器控制的重要区别之一就是工作方式不同。继电接触器控制系统是按"并行"方式工作的,也就是说是按同时执行的方式工作的,只要形成电流通路,就可能有几个电器同时动作。而PLC是以"串行"方式工作的,PLC在循环执行程序时,是按照语句的书写顺序自上而下进行逻辑运算,而前面逻辑运算的结果会影响后面语句的逻辑运算结果。因此梯形图编程时,各语句的位置也会对控制功能产生关键影响。例如:

5706ed1c-b1d6-11eb-bf61-12bb97331649.png

图5程序1

程序1调试结果:X0接通3次,Y3接通,X0再接通1次,Y3断开。

5740352c-b1d6-11eb-bf61-12bb97331649.png

图6程序2

程序2程序调试结果.X0接通3次,Y3接通瞬间即断开。

上面两个程序中,输出Y3、计数器CTl02及内部通用继电器R0前面的逻辑条件均相同,仅仅是计数器CTl02所在语句位置发生了变化,而两段程序的运行结果就截然不同。这是因为CTl02对输出Y3的影响方式发生了变化。

执行第一段程序时,将首先判断输出Y3的状态,再判断CTl02的状态,CTl02的状态变化只能在下一个扫描周期对Y3产生影响;而执行第二段程序时,将首先判断CTl02的状态,再判断输出Y3的状态,CTl02的状态变化将在该扫描周期直接影响Y3的状态。

从以上讨论可以得出,由于PLC采用"串行"工作方式,所以即使是同一元件,在梯形图中所处的位置不同,其工作状态也会有所不同,因此在利用梯形图进行控制程序编制时,应对控制任务进行充分分析,合理安排各编程元件的位置,才能够更为准确地实现控制。

三、PLC的编程元件

PLC的各种功能主要是通过运行控制程序来实现。编制程序时,需要合理使用PLC提供的编程元件(即软元件)。FPO型PLC中常用的编程元件有两种:位元件(bit)和字元件(word)。

位元件实际上是PLC内存区域所提供的一个二进制位单元,又被称为软继电器,主要用作基本顺序指令的编程元件,如输入继电器Xn、输出继电器Yn、内部通用继电器Rn、定时(计数)器等,其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算结果即输出。

字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和高级指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。

值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。如:

574b3166-b1d6-11eb-bf61-12bb97331649.png

图7编程元件示例程序

图7所示程序中,WR0即为字元件,是左移位指令SR的编程元件,而Y0为输出软继电器的线圈,X0、X1、X2、X3则为输人软继电器的触点,其中第4步的R4触点为位元件R4的常开触点,而位元件R4又是字元件WR0中的一位,因此其状态受限于WR0的移位结果。

四、顺序控制多步同输出的编程方法

顺序控制是生产现场常见的一类控制任务,步进指令是PLC指令库中专用于顺序控制的。步进指令编程时,根据工艺流程将程序划分为一个个独立的程序段,执行时,CPU严格按梯形图编程顺序,只有执行完前一段程序后才能激活下一段程序,并在下一段程序执行之前,将前面程序段复位。并且在语法上要求各程序段所使用的输出不允许重复。这在解决顺序控制任务中有多步同输出的情况时,就带来了一定的困难。借助于内部通用继电器可方便解决这一难题。如某一顺序控制任务如以下流程图(图8)所示。

5754af7a-b1d6-11eb-bf61-12bb97331649.png

图8某机械手动作流程图

从机械手动作流程图可以看出,这个控制任务每个循环的工作可以划分为八步,其中第1步与第5步动作相同,均为上升;第3步和第7步动作相同,均为下降。在利用步进指令进行编程时,这两个工步所对应的程序段的输出不能直接设置为Y3、Y4,同一个输出使用两次则会出现语法错误。这时应考虑使用用于存储中间状态的内部通用继电器Rn来解决这个问题。如图7所示梯形图程序,其中R1、R5分别被定义为第1步与第5步的输出,R3、R7分别被定义为第3步与第7步的输出,在步进结束后再将R1、R5的状态输出到上升Y3,将R3、R7的状态输出到下降Y4,通过这样的方法可方便解决顺序控制任务中若干工步输出相同的问题。

575e5bc4-b1d6-11eb-bf61-12bb97331649.jpg

图9机械手控制梯形图

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5052

    文章

    14823

    浏览量

    488699
  • 编程语言
    +关注

    关注

    10

    文章

    1965

    浏览量

    39883
  • 软件系统
    +关注

    关注

    0

    文章

    70

    浏览量

    9841

原文标题:PLC软件系统常用编程语言,我一般用第3种

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式应用开发?

    。 · ‌调试器‌:用于调试和测试程序。 · ‌操作系统‌:如WinCE、ucos、vxworks、linux、android等。 编程语言和处理器 常用
    发表于 01-12 16:13

    PLC控制系统应用的抗干扰问题分析及处理措施

    在工业自动化控制领域,PLC(可编程逻辑控制器)以其高可靠性、灵活性和强大的控制功能,成为现代工业控制的核心设备。然而,在实际应用中,PLC控制系统常常受到各种干扰的影响,导致
    的头像 发表于 12-12 07:43 1592次阅读
    <b class='flag-5'>PLC</b>控制<b class='flag-5'>系统</b>应用的抗干扰问题分析及处理措施

    CW32嵌入式软件开发的必备知识

    嵌入式系统中最常用编程语言,因为它们提供了直接访问硬件的能力,并且代码执行效率高。 了解汇编语言,用于编写底层驱动、中断处理程序以及性能要
    发表于 11-28 07:48

    C语言编程技巧

    设计,分层开发代码,便于理解和维护。 ‌8、避免使用GOTO语句‌:尽管GOTO语句在某些情况下仍然有用,但现代编程更倾向于使用函数和循环控制结构,以提高代码的可读性和维护性。 ‌9、利用C语言的灵活性
    发表于 11-27 06:46

    单片机开发中常用的三种软件架构介绍

    消息的显示} 4.事件驱动架构事件驱动架构是一种编程范式,其中程序的执行流程由事件(如用户输入、传感器变化、定时器到期等)触发。 在单片机开发中,事件驱动架构通常用于响应外部硬件中断或软件中断。 以下
    发表于 11-26 08:05

    一文了解Mojo编程语言

    Mojo 是一种由 Modular AI 公司开发的编程语言,旨在将 Python 的易用性与 C 语言的高性能相结合,特别适合人工智能(AI)、高性能计算(HPC)和系统
    发表于 11-07 05:59

    信捷XS STUDIO编程软件V2.3.2版本的全新功能

    XS Studio(V2.3.2)编程软件,是面向XS系列的编程组态软件,集成了PLC编程、可视
    的头像 发表于 09-20 14:19 2547次阅读
    信捷XS STUDIO<b class='flag-5'>编程</b><b class='flag-5'>软件</b>V2.3.2版本的全新功能

    开发单片机需要学习什么?软件编程的 4 个关键层次

                        开发单片机需要学习什么?软件编程的 4 个关键层次 单片机的 “智能” 全靠软件实现,编程技能需从基础语法逐步进阶到复杂逻辑,每个层次对应不同的
    的头像 发表于 08-25 11:32 1092次阅读

    编程软件连接PLC出现IP冲突时如何解决?

    通信的。某工厂在新增一台自动化PLC设备后便遇到这个问题,导致编程软件无法访问到对应的PLC设备。 由于老设备接口已被占用,新设备接口仍有空闲。因此,物通博联网段隔离器WC503通过网
    的头像 发表于 07-31 17:08 1243次阅读
    <b class='flag-5'>编程</b><b class='flag-5'>软件</b>连接<b class='flag-5'>PLC</b>出现IP冲突时如何解决?

    嵌入式软件开发常用软件有哪些?

    、编译和调试嵌入式系统软件。它提供了一个集成的开发环境(IDE),包括代码编辑器、编译器、调试器和仿真器等组件,这些组件可以方便地进行配置和管理,提供了高效的开发体验。Keil 5支持多种编程语言,包括
    发表于 07-03 17:06

    PLC现场工程师工具携带指南

    介绍 PLC 编程人员在现场常用的工具及其用途。 1.笔记本电脑 笔记本电脑是 PLC 编程人员的核心工具之一。它不仅用于编写和修改
    的头像 发表于 06-26 15:32 1030次阅读
    <b class='flag-5'>PLC</b>现场工程师工具携带指南

    提高篇——C语言核心技术(中文版)

    严谨的术语表介绍C语言;第二部分描述标准链接库;第三部分介绍GNU软件中常用的编译和测试工具。 获取完整文档资料可下载附件哦!!!!如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 06-13 16:39

    单片机9种常用软件架构-C语言

    单片机9种常用软件架构-C语言
    发表于 06-10 20:35

    作为硬件工程师,你用那款PCB 设计软件?超全EDA工具整理

    还在为选PCB设计软件头秃?这篇“闭坑指南”必须码住!吐血整理全网EDA工具——
    的头像 发表于 05-23 12:07 5395次阅读
    作为硬件工程师,你用那款PCB 设计<b class='flag-5'>软件</b>?超全EDA工具<b class='flag-5'>整理</b>!

    芯片前端设计中常用软件和工具

    前端设计是数字芯片开发的初步阶段,其核心目标是从功能规格出发,最终获得门级网表(Netlist)。这个过程主要包括:规格制定、架构设计、HDL编程、仿真验证、逻辑综合、时序分析和形式验证。
    的头像 发表于 05-15 16:48 1859次阅读