freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PLC编程与应用入门——(一)
2019-06-17 18:22:16

        PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关设备,都应按易于使工业控制系统形成一个整体,易于扩充其功能的原则设计。

        随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已扩展到了几乎所有的工业领域。现代社会要求制造业对市场需求作出迅速的反应,生产出小批量、多品种、多规格、低成本和高质量的产品,为了满足这一要求,生产设备和自动生产线的控制系统必须具有极高的可靠性和灵活性,PLC编程正是顺应这一要求出现的,它是以微处理器为基础的通用工业控制装置。

        因此,本文将将介绍一些PLC编程的基础知识,包括数字电路基础知识、PLC基础、PLC工作原理和PLC编程语言介绍等等,为学习工控安全和PLC编程奠定坚实的基础。

PLC简介

PLC(Programmable Logic Controller)可编程逻辑控制器是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

工业控制网络可大致分为5个层面,从下至上依次为现场设备层、现场控制层、过程监控层、生产管理层和企业管理层。本文讲述的PLC设备主要部署在现场控制层,为现场生产提供可控功能。该层次应当主要保护各类控制单器、控制单元、记录装置等不被恶意破坏或攻击操控。

image

认识PLC

image

PLC的基本组成部件

image

一、PLC编程基础知识

课程学习指导:1.学好基础,循序渐进;2.多做练习,勤学好问;3.参与实践,学用结合。

1.1 数字电路基础

1.1.1 数制

二进制、八进制、十进制、十六进制等

熟练掌握N进制转十进制、十进制转N进制的方法。

image

1.1.2 码制

编码是指用一组n位二进制数码来表示数据、各种字母符号、文本信息和控制信息的二进制数码的集合。表示的方式不同,就形成了不同的码制。

8421码

用四位二进制数来表示十进制数的编码方式称为BCD码,又称二-十进制码。最常用的是8-4-2-1BCD码。

image

格雷码

在各种控制系统的角度、长度测量和定位控制中,经常使用绝对式旋转编码作为位置传感器,其所输出的二进制编码为格雷码。

格雷码是一种无权二进制编码,它的特点是任何相邻的码组之间只有一位数发生变化,是一种错误很少的可靠性编码。

格雷码对应的二进制数值表:

image

ASCII码

ASCII码即美国信息交换标准代码,是目前最常用的字符编码。

标准ASCII码是用七位二进制数组合来表示128种不同的字符和控制编码。它包括了数字0-9、26个英文大写和小写字符、标点符号、打印字符和一些非打印的控制字符。

1.1.3 基本逻辑电路

基本逻辑电路是根据基本逻辑运算“与”“或”“非”所组成的电路,所有的逻辑控制电路都是由这三种基本逻辑电路组合而成。

在逻辑电路中,所有的输入和输出只有两种状态:“0”或“1”。

学习和掌握基本逻辑电路的功能时学习PLC梯形图编程的基础。

1.1.4 逻辑位运算

在数据量的处理中,经常要把二个n位二进制进行逻辑运算处理,其处理方法是把二个数的相对应的位进行位与位的逻辑运算,这就叫做数据量的逻辑位运算

位与运算:

image

位或运算:

image

位反运算:

image

异或运算:

image

总结:

1、熟练进行二进制、十进制、十六进制之间的转换;

2、熟练用BCD码表示十进制数;

3、熟练查询字符对应的ASCII码;

4、理解逻辑关系、逻辑表达式和基本逻辑电路之间的联系;

1.2 PLC基础

1.2.1 了解PLC

可编程逻辑控制器是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

简要的说,PLC就是一部小型的工业电脑。

1.2.2 PLC硬件结构

PLC硬件主要由中央处理单元CPU、存储器RAM和ROM,输入单元I、输出单元O、电源单元、编辑器、扩展接口、编程接口和存储器接口组成。

其结构图如图所示:(虚线框内的代表PLC内部元件,虚线框外的代表PLC外部单元)

image

中央处理单元CPU的作用:

PLC的核心,在系统程序控制下,完成PLC的所有工作,保证PLC的运行。

存储器:存放系统程序、数据(ROM),存放用户程序和数据(RAM)。

输入输出端口:输入各种现场信号,输出现场控制信号。

电源:对PLC的各工作组件进行供电。

编程器:对PLC写入用户程序,有编程器和编程软件两种。

1.2.3 PLC软件组成

(1)系统软件:为系统管理程序,编译程序和相应数据。装入机内ROM存储器中,永久保存不能更改。

(2)应用软件:是用户为达到某种控制目的,采用专用的编程语言自主编写的用户程序。并由用户用一定手段写入到机内RAM中,可以随时修改和重新编写。

1.2.4 PLC主要性能指标

image

1.2.5 PLC物理结构

(1)整体式PLC:CPU、I/O和电源均装在一个箱体内,结构紧凑、体积小、价格低,性价比高。

image

(2)模块式PLC:把CPU、I/O、电源均做成不同模块,根据需要组装在框架上。组合方便、维修简单,价格较高。

image

(3)混合式PLC:兼备整体式和模块式优点有基本单位和扩展单元、功能模块组成。应用灵活、价格适宜,为中小型PLC普遍采用。

image

1.2.6 PLC能做什么?

(1)开关量逻辑控制:代替了继电控制。

(2)运动定位控制:机床、机器人、电梯。

(3)模拟量过程控制:PID闭环控制,各行各业。

(4)数据处理:数字运算、数据传递…用于大型工业控制系统。

(5)通信控制:PLC之间的通信、与智能设备的通信、组网通信等。

1.3 PLC工作原理

PLC采用循环扫描工作方式,它周而复始地依一定的顺序来完成PLC所承担的系统管理工作和应用程序的执行。

循环扫描工作是一种分时串行处理方式,与继电控制系统的并行处理方式是完全不同的。

1.3.1 PLC工作模式(工作状态)

PLC有运行(run)和停止(stop)两种基本工作模式,有内部处理等五种工作处理阶段。

上电->内部处理->通信服务->输入处理->程序处理->输出处理

1.3.2 PLC STOP模式

STOP模式也叫做编程模式。

主要执行两个操作:

1、内部处理:检查CPU内容硬件,定时复位及有关内部工作。

2、通信服务:与编程器进行信息交流。

image

1.3.3 PLC RUN模式

image

RUN模式执行操作:

(1)内部处理

(2)通信服务

(3)输入处理

(4)程序处理

(5)输出处理

1.4 PLC的编程语言

PLC是一种工业控制计算机,其软件必然是通过编程语言来编辑的。

目前PLC常见的编程语言有梯形图、指令语句和顺序功能图。功能块图和结构文本高级语言则存在于某些PLC中。

1.4.1 指令表(IL)

指令语句表也叫助记符和列表,是基于字母符号的一种语言,类似于计算机汇编语言。

指令语句表编程语言具有容易记忆、便于操作的特点,可直接用简易编程器进行编辑,无需任何编程软件。与其他语言多有一一对应关系。

指令语句表是最基本的编程语言,其缺点是可读性较差。

指令表编程实例:

image

1.4.2 梯形图(LD)

梯形图与继电控制电气原理图很相似,是一种基于梯级的图形符号逻辑语言。具有直观易懂,容易理解和阅读的编程语言。

梯形图是目前使用得最多的PLC编程语言,也是我们要求所有学员必须熟练掌握的语言。

在编程软件上,梯形图和指令表可直接互相进行编译。

梯形图编程实例:

image

1.4.3 顺序功能图(SFC)

顺序功能图是一种位于其他编程语言之上的图形语言。主要用来编制顺序控制程序。其特点是程序结构直观,条理清楚,比梯形图更方便于程序人员之间理解和沟通。

在PLC中,顺序功能图仅是一种辅助编程工具,必须将它转换成梯形图才能送入PLC中执行。

顺序功能图编程实例:

image

1.4.4 功能块图(FBD)

功能块图是一种对应于逻辑电路的图形语言。它是用图形化的方法,以功能模块为单位,描述控制功能。其表达简练,逻辑关系清晰。使控制方案的分析和理解变得容易。广泛地应用于规模较大,控制关系复杂的过程控制中。

功能块图仅在部分PLC中使用。

功能块图编程实例:

image

1.4.5 结构文本(ST)

结构文本语言是一种与BASIC、PASICAL或C语言等高级语言相类似的语言。可以说是一种较简易的高级语言。

结构文本语言对程序设计人员要求较高,所以目前还不大普及,仅个别PLC提供这类语言。(如:西门子S7-300)


        以上是关于PLC入门学习和编程的基础知识,本文作为《PLC编程与应用入门-(一)》,在后面的章节将会为大家分享更多的PLC编程知识,包括逻辑控制程序的编制、定时器程序编制和计数器程序编制。除此之外,可能还会涉及一些有趣的PLC编程实例,以方便大家学习PLC编程软件和仿真软件的使用。

参考资料

视频教程 https://www.bilibili.com/video/av20992086?from=search&seid=18066023756269401051


关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号

ewm.png


# 工控安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者