以下主要内容来源于笔者前同事Mr Yang,经作者授权整理后发布。
PLC广泛应用于钢铁、石油、化工、电力等工控领域,主要有以下原因:
3.1 IEC61131-3
讲到PLC的软件实现,那就不得不提IEC61131-3,它是IEEE制定的用于PLC的编程系统标准,定义了以下五种编程语言:
指令表(ILD)
梯形图(LD)
功能块(FBD)
结构化文字(STL)
顺序功能流程图(SFC)
小型PLC由于功能简单,而且步长受限,往往最常用的是指令表和梯形图。STL类似C语言,经常用于编写功能块,FBD/SFC更加直观,经常用于复杂逻辑的顶层设计。
3.2 PLC的软件构成
用过PLC的朋友都知道,通用的PLC都会提供一个PC端的软件用来编辑用户逻辑,比较常见的有西门子的STEP7,3S的Codesys,KW的MULTIPROG,rockwell的ISaGRAF。所以,一般情况下,PLC的软件由两部分组成:
(1) PC端的编程软件,给用户提供编程调试环境
(截图代码源于和利时G3小型PLC)
(2) 设备端的软件,而设备端的软件又分为runtime system(后称RTS)和用户程序(后称POU)两部分内容。RTS是PLC设备端的核心,主要有以下几个作用:
当然,也有一些微型PLC自带屏幕,无需PC软件,可以直接在屏幕上编程,比如西门子的Logo系列。
图片源自西门子官网
3.3 POU的分类
PLC的RTS从实现角度讲,分为两类:解释型和编译型,有点像学校里学习VB和VC的区别。编译型PLC生成的POU是可以执行的二进制代码,解释型PLC生成的POU是一个中间文件。
编译型PLC
编译型PLC支持的IEC61131-3编程软件会根据用户的编程语言生成PLC可以执行的二进制机器代码,其有以下几个特点:
解释型PLC
解释型PLC支持的IEC61131-3编程软件会根据用户的编程语言生成中间文件,CPU会作为解析器来解析该中间文件,其有以下几个特点:
编译型 | 解释型 | |
---|---|---|
执行效率 | 高 | 低 |
开发难度 | 大 | 小 |
跨平台运行 | 难 | 易 |
反编译源文件 | 难 | 一般 |
无扰下装 | 难 | 易 |
防克隆 | 好 | 差 |
如果觉得文章不错,点个赞或者在看支持一下吧。