大家好,又见面了,我是你们的朋友全栈君。
目录
(一)PLC特点
(二)PLC运行原理
(1)PLC内部硬件结构
(2)CPU扫描构成
(3)程序的执行类型
(三)PLC编程语言
本人接触的PLC多为三菱和欧姆龙,故主要以三菱PLC为例开始记录。
(一)PLC特点
在学习PLC之前,首先要明白PLC的优缺点,即为什么要用PLC,直接用PC服务器或者单片机嵌入式不行吗?
PLC有五个特点:
(1)可靠性高、抗干扰能力强;
(2)灵活性好、扩展性能强;
(3)控制速度快、稳定性强;
(4)延时调整方便,精度高;
(5)系统设计安装块、维修方便。
其实最重要的就两个字,稳定。像单片机这种负荷一高就烧板子,在电磁干扰强的地方也无法正常工作。PC服务器更是无法胜任多种IO输出,控制现场各种电机运转。故设备的底层一般用PLC控制,精准的运动控制一般用控制板卡,而上报的数据处理则由专门的PC服务器负责。
(二)PLC运行原理
可参考三菱手册“MELSEC iQ-R CPU模块用户手册(应用篇)”。
(1)PLC内部硬件结构
大致了解即可,不用过分纠结。
(2)CPU扫描构成
知道CPU的扫描构成对程序开发者具有重要意义,许多时序性问题会豁然开朗。
特别是进行高速数据通信时,可能会出现收到的数据并不是预想的那样。如以下问题:
问题一:我在极短时间(低于CPU扫描周期)内更改IO值,为什么程序中不显示变化呢?
答:CPU可能正在执行运算,只有等END处理后才会进行IO刷新处理,在这之间并不读取IO数据。
问题二:程序中有多个文件,先执行文件中软元件值为什么会被后续文件中软元件中值覆盖掉?
答:PLC计算完成后统一输出,在一个扫描周期内,并不会计算出一个结果立马输出,所以软元件在一个周期内只会输出一个最终的值。
(3)程序的执行类型
程序在CPU模块变为Run状态时,将按照程序的执行类型及执行顺序的设置依次执行。
程序的执行类型一般分为初始执行类程序、扫描执行类程序、恒定周期执行类程序、事件执行类程序、待机类程序。一般用的最多的为前两种类型。初始执行类程序一般用作设备参数的初始化,扫描执行类程序则是主程序,根据顺序依次扫描执行。
(三)PLC编程语言
PLC有五种标准化编程语言:顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST)两种文本语言。用的最多的是梯形图和ST语言。
梯形图最初是为电工设计的,编程入门门槛低,语言形象,能够直观的看出输入输出逻辑。但其在数据运算时有很明显的缺点,一个复杂的运算表达式包含加减乘除多种混合运算,用ST表达一行足矣,但用梯形图则需多行指令,还需要很多中转软元件。如:计算四个变量a1*a2 a3-a4,四个变量的初始值如下:
若使用梯形图编写:
若使用ST编写:
故现在比较流行梯形图嵌入ST语言的写法,结合两家之长。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197571.html原文链接:https://javaforall.cn