可编程逻辑控制器

目录·发展历史
·PLC内部运作方式
·PLC的硬件结构及基本配置
·可编程逻辑控制器的系统与控制回路
·PLC未来展望



可编程逻辑控制器(Programmable Logic Controller,PLC),是一种用于自动化实时控制的数位逻辑控制器,广泛应用于目前的工业控制领域。在可编程逻辑控制器出现之前,一般要使用成百上千的继电器以及计数器才能组成具有相同功能的自动化系统,而现在,经过编程的简单的可编程逻辑控制器模块基本上已经代替了这些大型装置。可编程逻辑控制器的系统程序一般在出厂前已经初始化完毕,用户可以根据自己的需要自行编辑相应的用户程序来满足不用的自动化生产要求。
最初的可编程逻辑控制器只有电路逻辑控制的功能(IO控制),所以被命名为可编程逻辑控制器,后来随着不断的发展,这些当初功能简单的计算机模块已经有了包括逻辑控制,时序控制、模拟控制、多机通信等许多的功能,名称也改为可编程控制器(Programmable Controller),但是由于它的简写也是PC与个人电脑(Personal Computer )的简写相冲突,也由于多年来的使用习惯,人们还是经常使用可编程逻辑控制器这一称呼,并在术语中仍沿用PLC这一缩写。
现在工业上使用可编程逻辑控制器(PLC)已经相当接近于一台轻巧型电脑所构成,甚至已经出现整合个人电脑(采用嵌入式操作系统)与PLC架构的PC-BASE控制器,能透过数位或类比输入/输出模组控制机器设备、制造处理流程、及其它控制模组的电子系统。PLC可接收(输入)及发送(输出)多种型态的电气或电子讯号,并使用他们来控制或监督几乎所有种类的机械与电气系统。
PLC具有通用性强、使用方便、适应面广、可靠性高、抗干扰能力强、编程简单等特点。在工业控制领域中,PLC控制技术的应用已成为工业界不可或缺的一员。

国际电工委员会(IEC)在其标准中将PLC定义为:
「可程式邏輯控制器是一種數位運算操作的电子系统,专为在工业环境应用而设计的。
它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等
面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。可程式邏輯控制器及
其有关外部设备,都按易于与工业控制系统联成一个整体,易于扩充其功能的原则设计。」




发展历史





三菱的Q系列PLC,可借由扩充底座连接各种模组扩充许多高性能之功能



PLC的兴起,是与美国现代工业自动化生产发展的要求密不可分的。

PLC 源起于1960 年代,当时美国一汽车制造公司,为解决工厂生产线调整时,继电器顺序控制系统之电路修改耗时,平时检修与维护不易等问题。

在可编程逻辑控制器出现之前,汽车制造业中的一般控制、顺序控制以及安全互锁逻辑控制必须完全依靠众多的继电器、定时器以及专门的闭回路控制器来实现。它们体积庞大、有着严重的噪音,不但每年的维护工作要耗费大量的人力物力,而且继电器-接触器系统的排线检修等工作对维护人员的熟练度也有着很高的要求。
针对这些问题,美国通用汽车公司在1968年向社会公开招标,要求设计一种新的系统来替换继电器系统,并提出了著名的“通用十条”招标指标,即:
1、编程方便,现场可修改程序;
2、维修方便,采用模块化结构;
3、可靠性高于继电器控制装置;
4、体积小于继电器控制装置;
5、数据可直接送入管理计算机;
6、成本可与继电器控制装置竞争;
7、输入可以是交流115V;
8、输出为交流115V,2A以上,能直接驱动电磁阀,接触器等;
9、在扩展时,原系统只要很小变更;
10、用户程序存储器容量至少能扩展到4K。



随后,美国数字设备公司(DEC)根据这一设想,于1969年研制成功了第一台PDP-14控制器,并在汽车自动装配线上使用并获得成功。由于当时系统主要用于顺序控制、职能进行逻辑运算,所以被命名为可编程逻辑控制器(Programmable Logic Controller,PLC)。
最早期之PLC只具有简易之逻辑开/关(on/off)功能,但比起传统继电器之控制方式,已具有容易修改、安装、诊断与不占空间等优点。


1970 年代初期,PLC引进微处理机技术,使得PLC具有算术运算功能与多位元之数位信号输出/输入功能,并且能直接以阶梯图符号进行程式之编写。这项新技术的使用,在工业界产生了巨大的反响。日本在1971年从美国引进了这项技术,并很快研制成功了自己的DCS-8可编程逻辑控制器,德、法在1973年至1974年间也相继有了自己的该项技术。中国则于1977年研制成功自己的第一台可编程逻辑控制器,但是使用的微处理器核心为MC14500。
1970 年代中期,PLC功能加入远距通讯、类比输出输入、NC 伺服控制等技术。
1980 年代以后更引进PLC 高速通讯网络功能,同时加入一些特殊输出/输入界面、人机界面、高功能函数指令、资料收集与分析能力等功能。

PLC之功能早已不止当初数位逻辑之运算功能,因此近年来PLC常以可编程控制器(Programmable Controller)简称之。




其他历史细节参考这里(英文)

PLC内部运作方式




虽然PLC所使用之阶梯图程式中往往使用到许多继电器、计时器与计数器等名称,但PLC内部并非实体上具有这些硬件,而是以内存与程式编程方式做逻辑控制编辑,并借由输出元件连接外部机械装置做实体控制。因此能大大减少控制器所需之硬件空间。实际上PLC执行阶梯图程式的运作方式是逐行的先将阶梯图程式码以扫瞄方式读入CPU 中并最后执行控制运作。在整个的扫瞄过程包括三大步骤,“输入状态检查”、“程式执行”、“输出状态更新”说明如下:

步驟一「輸入狀態檢查」:
PLC首先檢查輸入端元件所連接之各點開關或感測器狀態(1 或0 代表開或關),並將其狀態寫入記憶體中對應之位置Xn。

步驟二「程式執行」:
將階梯圖程式逐行取入CPU 中運算,若程式執行中需要輸入接點狀態,CPU直接自記憶體中查詢取出。
輸出線圈之運算結果則存入記憶體中對應之位置,暫不反應至輸出端Yn。

步驟三「輸出狀態更新」:
將步驟二中之輸出狀態更新至PLC輸出部接點,並且重回步驟一。

此三步骤称为PLC之扫瞄周期,而完成所需的时间称为PLC 之反应时间,PLC 输入讯号之时间若小于此反应时间,则有误读的可能性。每次程式执行后与下一次程式执行前,输出与输入状态会被更新一次,因此称此种运作方式为输出输入端“程式结束再生”。

PLC的硬件结构及基本配置

一般讲,PLC分为箱体式和模组式两种。但它们的组成是相同的,对箱体式PLC,有一块CPU板、I/O板、显示面板、内存块、电源等,当然按CPU性能分成若干型号,并按I/O点数又有若干规格。对模组式PLC,有CPU模组、I/O模组、内存、电源模组、底板或机架。无任哪种结构类型的PLC,都属于总线式开放型结构,其I/O能力可按用户需要进行扩展与组合。PLC的基本结构框图如下:



硬件结构




可编程逻辑控制器硬件构成


可编程逻辑控制器(Programable Logic Controller)简称PLC,是一种具有微处理机的数位电子设备,可以将控制指令随时加载内存内储存与执行。
可编程控制器由内部CPU,指令及资料内存、输入输出单元、电源模组、数位类比...等单元所模组化组合成.



中央处理单元
PLC中的CPU是PLC的核心,起神经中枢的作用,每台PLC至少有一个CPU,它按PLC的系统程式赋予的功能接收并存贮用户程式和资料,用扫描的方式采集由现场输入装置送来的状态或资料,并存入规定的寄存器中,同时,诊断电源和PLC内部电路的工作状态和编程过程中的语法错误等。进入运行后,从用户程式存贮器中逐条读取指令,经分析后再按指令规定的任务产生相应的控制信号,去指挥有关的控制电路,与通用电脑一样,主要由运算器、控制器、寄存器及实现它们之间联系的资料、控制及状态总线构成,还有周边芯片、总线界面及有关电路。它确定了进行控制的规模、工作速度、内存容量等。内存主要用于存储程式及资料,是PLC不可缺少的组成单元。
CPU的控制器控制CPU工作,由它读取指令、解释指令及执行指令。但工作节奏由震荡信号控制。CPU的运算器用于进行数位或逻辑运算,在控制器指挥下工作。
CPU的暂存器参与运算,并存储运算的中间结果,它也是在控制器指挥下工作。
CPU虽然划分为以上几个部分,但PLC中的CPU芯片实际上就是微处理器,由于电路的高度集成,对CPU内部的详细分析已无必要,我们只要弄清它在PLC中的功能与性能,能正确地使用它就够了。
CPU模组的外部表现就是它的工作状态的种种显示、种种接口及设定或控制开关。一般讲,CPU模组总要有相应的状态指示灯,如电源显示、运行显示、故障显示等。箱体式PLC的主箱体也有这些显示。它的总线界面,用于接I/O范本或底板,有内存接口,用于安装内存,有外设口,用于接外部设备,有的还有通讯口,用于进行通讯。CPU模组上还有许多设定开关,用以对PLC作设定,如设定起始工作方式、内存区等。
PLC的CPU内部包含CU、ALU、暂存器三大部分:
CU:(控制单元-指令解码器) 负责将储存在内存内的程式解码成控制信号,用以决定各单元模组的工作状态,是PLC的指挥部。
ALU:(算数及逻辑运算单元)专门负责做加减乘除的算术运算及AND、OR、NOT逻辑运算
暂存器:CPU内部内存可以暂时存放运算的结果,等待下一次运算。



内存
PLC内部存放撰写完成编辑的程式指令及资料的地方,通常也可使用RAM或EEPROM等专用内存卡片方式扩充(但扩充能力得依各厂牌与型号有所不同)。

输入/输出单元(IO单元)
PLC的对外功能,主要是通过各种I/O接口模组与外界联系的,按I/O点数确定模组规格及数量,I/O模组可多可少,但其最大数受CPU所能管理的基本配置的能力,即受最大的底板或机架槽数限制。I/O模组集成了PLC的I/O电路,其输入暂存器反映输入信号状态,输出点反映输出锁存器状态。
输入单元是用来连结撷取输入元件的信号动作并透过内部总线将资料送进内存由CPU处理驱动程式指令部分。PLC输入模组PLC系统的架构和输入模组产品的选择端视需要被监测的输入讯号位准而定。
来自不同类型被监测的传感器与流程控制之变量讯号,可以涵盖从±10mV至±10V的输入讯号范围。
输出单元是用来驱动外部负载的接口,主要原理是由CPU处理以书写在PLC里的程式指令,判断驱动输出单元在进而控制外部负载,如指示灯、电磁接触器、继电器、气(油)压阀等。
PLC输出模组在工业环境中用来控制制动器、气阀及马达等的PLC系统类比输出范围包括±5V、±10V、0V到5V、0V到10V、4到20mA、或0到20mA等。

AD/DA 类比/数位 单元(类比数位转换控制)
AD-类比讯号转数位讯号:主要是把外部微电压微电流以及0与1的资料,透过专用模组接面接收,再以专用指令转换运算给程式运用。
DA-数位讯号转类比讯号:主要是把PLC内部数学数值及专用指令以CPU做运算,并透过专用模组将数学术值转微电压微电流信号再加以控制外部设备,如变频器、温控器等包含其他具有数位类比收送的接口设备。
通常在使用AD/DA模组时都会去考虑到设备的分辨率,因为分辨率会影响到精准度,所以我门通常会选用高分辨率的设备使用,并遵照期线性比例做数学运算。

电源模组
有些PLC中的电源,是与CPU模组合二为一的,有些是分开的,其主要用途是为PLC各模组的集成电路提供工作电源。同时,有的还为输入电路提供24V的工作电源。电源以其输入类型有:交流电源,加的为交流220VAC或110VAC,直流电源,加的为直流电压,常用的为24V。

通讯
现在PLC大多具有可扩充通信网络模组的功能,简单的PLC以BUS缆线或RS-232方式通讯连结,较高阶的PLC会采用USB或以太网路方式做通讯连结。它使PLC与PLC 之间、PLC与个人电脑以及其他智慧设备之间能够交换资讯,形成一个统一的整体,实现分散集中控制。现在几乎所有的PLC新产品都有通信网络功能,它和电脑一样具有RS-232接口,通过双绞线、同轴电缆或光缆,可以在几公里甚至几十公里的范围内交换资讯。
当然,PLC之间的通讯网络是各厂家专用的,PLC与电脑之间的通讯,一些生产厂家采用工业标准总线,并向标准通讯协定靠近,这将使不同机型的PLC之间、PLC与电脑之间可以方便地进行通讯与网络。

PLC的外部设备
外部设备是PLC系统不可分割的一部分,它有四大类

编程设备
有简易编程器和智慧图形编程器,用于编程、对系统作一些设定、监控PLC及PLC所控制的系统的工作状况。编程器是PLC开发应用、监测运行、检查维护不可缺少的器件,但它不直接参与现场控制运行。

监控设备
资料监视器和图形监视器。直接监视资料或通过画面监视资料。

存储设备
有存储卡、存储磁带、软碟或只读内存,用于永久性地存储用户资料,使用户程式不丢失,如EPROM、EEPROM写入器等。

输入输出设备
用于接收信号或输出信号,一般有条码读入器,输入模拟量的电位器,打印机等。

PLC内主要元件
PLC利用内部内存,规划许多顺序控制程式上常会使用到的元件,这些元件包括: 输入继电器、输出继电器、补助继电器、计数器、计时器、资料暂存器等主要元件,各元件功能与使用方法,说明如下:

输入接点(input)与输出接点(Output)

用于PLC与外部元件之间的状态传送。可连接外部器件,及按钮开关、选择开关、光电开关、数字开关等,使用过大电流将会造成内部接点元件损坏。
PLC输出(Yn)与输入(Xn)之继电器对应至实际输出与输入之接点状态,由PLC内部之记体来记忆,在每回程式执行完毕后,PLC会将运算结果后内存之值(0 或1)反应至输出接点Yn(ON或OFF);接着扫瞄输入接点Xn之状态,并更新所有输入点内存内之值,以备下一回程式执行使用。
输入点Xn与输出点Yn可当作一虚拟继电器的接点,因此可作常开接点(-| |-)与常闭接点(-|/|-)处理,每个输出点Yn(-( )-)只能使用在程序一次(步进指令STL+RET例外),但如作为接点,则可在程式设计的程序中无限使用。
以上为三菱PLC标记方式,其中n 代表接点之编号,接点编号方式各厂牌不同,有些PLC采八进制而非惯用之十进制。


内部继电器(M)

PLC内部提供很多补助继电器(通常以M或者R表示),用来取代传统顺序控制中的继电器。传统继电器包括接点与线圈二部份,但实际上PLC是以内存来记忆补助继电器之状态,若线圈被驱动则将1 写入,否则将0 写入。接点之运算则直接读自所对应之内存值(0 或1),其但原理与传统继电器相同,只有持续输出电源或采用自我保持设计,才可保持继电器的ON(1)状态,如果切断PLC的电源,或者对PLC进行复归,内部继电器都将断开OFF,除非是停电保持形态之内部继电器。
补助继电器可分为一般型与停电保持型,差别在系统重新启动或断电后,停电保持型会记忆启动或断电前之状态。
依各厂生产型别,尚可能有网络继电器(B)、步进继电器(S)...等特殊型态。


计数器(Counter)

计数器在程式中被用来计算重覆动作的次数。
每一个计数器Cn 有一个位元内存位址代表其接点状态,另有一字符暂存器用来记录目前所计数之大小。
一般PLC的计数器计数方式可分为上数或下数方式,有的计数器则同时具有上数与下数方式。上数指的是由小往大数(如:1,2,3...),下数指的是由大的往小数(如:9,8,7...)。因此首先要了解所使用之计数器到底是上数或下数。
一般PLC中的计数器并非真有硬件计数器存在,而是以内存配合软件的模拟方式来完成计数等功能。但有的PLC具有高速计数器,则是以实际的硬件来完成所需的高速计数工作。顺序控制使用一般计数器即可,但若输入讯号为高速脉波,则须改采高速计数器。
有的PLC为避免意外停电后计数器计数值的遗失,也提供部份计数器具有停电后保持计数值与接点状况之功能。


计时器(Timer)

计时器用来计算动作的时间长短。
每一个计时器Tn 有一个内存位址记忆其接点状态,另有一暂存器用来记录目前所计时之次数。每单位计时时间乘上计时次数,代表所计时之时间长短。
一般型计时器按其接点动作方式可分为“启动延迟型”或“断电延迟型”二种
另有一积算型计时器,在输入讯号消失或停电后,计时器内之资料会被保存。因此积算型计器内之资料在每一次重新计时动作前,应先予以归零。


“启动延迟型”计时器:在启动讯号输入后开始计时,等到计时终了才启动计时线圈与接点;
“启动延迟型”计时器:则在启动讯号输入后,除了开始计时,并启动计时线圈与接点,等到计时终了才将计时线圈与接点关闭。




资料暂存器(Data)

资料暂存器(Dn)用来储存字符组之数值或字符资料。
其资料型态使用二进制符号,数据用O与1表示。每个暂存器使用16位元储存,但是如果使用二个资料暂存器,则可处理32位元的数据。
数值存入后其内容会一直保持,直到新数据送入或程式停止运转才清除归零。
依其功能可分为一般用、停电保持用、特殊用、档案暂存用四种。




一般与停电保持用资料暂存器用来暂存程式中之运算值;特殊用资料暂存器用来控制或监视PLC 内部各项要素;档案暂存资料暂存器用来读入周边装置资料。




指标
其概念与编程语言上的指标功能相同,可作为程式的跳步指令与之配合使用。

可编程逻辑控制器的系统与控制回路


模拟信号和数字信号的处理
PLC是一种监控装置, 为了监视及控制各项机电等设备, 当然必须与那些设备有相互沟通的方式.
在这些机电设备的世界里, 人类发明了各种形式的讯号, 以作为它们之间的沟通媒介.
目前来说, 人们研发出来的各种侦测如: 温度, 湿度, 压力等自然现象的侦测元件, 都是将所测得的数据转换为线性对应的电流信号, 通常是4~20mA.
PLC接受这样的信号, 就可依据电流的大小而知道侦测器侦得的目前状况.
Pulse(脉冲)信号是一种形式的接点信号. 它的意思是每"达到条件"时, 接点会闭合一次. 例如: 某个转轮式的流量计, 可能被设计成--当它计算出水流累计量达到一度时, 就将输出接点闭合一次.
至于所谓的RS232讯号, 乃是指一种"通讯"的方式(RS232是一种电气规格). 以上所提的各种信号都是电气形式的讯号. 而且每个信号都需要独立的线路来作传递.
通讯的方式, 则可以把它当作设备用"交谈"的方式来做沟通. 它们彼此间以一串行的数值信号来组成所要传递的资料, 使得多样化的资料能够借由一组通讯线路来达成.
4~20mA算是通用规格. 另外常见的还有 0~20mA.
另外还有电压式的: 0~5V, 1~5V, 0~10V, 等等.
当然还有以其他形式来表达自然环境中各种"连续性"数值的方式, 像是: 电阻式, 以及其他变化应用.
总之呢, 4~20mA的规格最多.
但是, 事实上, 4~20mA的电流信号, 在进入电路板时, 还是会串上一个250或500欧姆的电阻, 而获得一个1~5V或2~10V的电压, 然后再由A/D(类比/数位)转换IC得到一个对应的数值.
这个"5V"或"10V"的原因, 乃是人们研发出来的A/D IC最容易且廉价的关系而已. 至于为何以电流的方式较多, 因为4~20mA控制电流不易因传送距离较长而导致讯号衰减。

编辑程式设计




PLC程式设计示意图


编程语言 PLC的编程语言与一般电脑语言相比,具有明显的特点,它既不同于高阶语言,也不同与一般的组合语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能相容的编程语言。如三菱公司的产品有它自己的编程语言,OMRON公司的产品也有它自己的语言。但不管什么型号的PLC,其编程语言都具有以下特点:
1.图形式指令结构:程式由图形方式表达,指令由不同的图形符号组成,易于理解和记忆。系统的软件发展者已把工业控制中所需的独立运算功能编制成象征性图形,用户根据自己的需要把这些图形进行组合,并填入适当的参数。在逻辑运算部分,几乎所有的厂家都采用类似于继电器控制电路的梯形图,很容易接受。如西门子公司还采用控制系统流程图来表示,它沿用二进制逻辑元件图形符号来表达控制关系,很直观易懂。较复杂的算术运算、定时计数等,一般也参照梯形图或逻辑元件图给予表示,虽然象征性不如逻辑运算部分,也受用户欢迎
2.明确的变量常数:图形符相当于操作码,规定了运算功能,算子由用户填人,如:K400,T120等。PLC中的变量和常数以及其取值范围有明确规定,由产品型号决定,可查阅产品目录手册。
3.简化的程式结构:PLC的程式结构通常很简单,典型的为块式结构,不同块完成不同的功能,使程式的调试者对整个程式的控制功能和控制顺序有清晰的概念。
4.简化应用软件生成过程:使用组合语言和高阶语言编写程式,要完成编辑、编译和连接三个过程,而使用编程语言,只需要编辑一个过程,其余由系统软件自动完成,整个编辑过程都在人机对话下进行的,不要求用户有高深的软件设计能力。
5.强化调测手段:无论是组合语言程式,还是高阶语言程式调试,都是令编辑人员头疼的事,而PLC的程式调试提供了完备的条件,使用编程器,利用PLC和编程器上的按键、显示和内部编辑、调试、监控等,并在软件支援下,诊断和调试操作都很简单。
总之,PLC的编程语言是针对使用者应用所开发的,因此对使用者不要求具备高深的知识、不需要长时间的专门训练。

PLC工作过程及硬件功能的实现,则要靠软件的支援。PLC的软件提供了各种逻辑模组(软件),经程式撰写来完成逻辑控制功能。

PLC专用编程语言种类
PLC常用的编程语言主要有四种:基本指令、阶梯图、流程、IEC 61131-3。另有一些较少使用的专用编程语言。
1. 基本指令:类似于组合语言,由指令语句系列构成,如Mitsubishi FX2的控制指令LD、LDI、AND、ANI、OR、ORI、ANB、ORB、MMP、MMS与OUT等,一般配合书写器写入程式,而书写器只能输入简单的指令,与电脑程式中的阶梯图比较起来阳春许多。书写器一次只显示四行指令,所以不太直观,可读性差,特别是遇到较复杂的程式,更难读,所以多数程式用顺序功能流程图(SFC)表达;其优点就是不需要电脑就可以更改或察看PLC内部程式。
使用书写器时,必须注意的是PLC指令中输出有优先次序,其中若有输出至相同的单元时(如Y000),输出的优先次序以位址越大优先次愈越高,一般不容易从书写器中察觉所输入的单元。如下面程式中,有两个Y000输出点,而输出点Y000最大的位置是在X001后面,所以能控制Y000输出的只有X001这个输入点;因而X000输入点无法控制Y000。
指令例:

位址 指令 變數
0000 LD X000 ;當輸入點 X0=ON(常開狀態)
0001 OUT Y000 ;則輸出點 Y0=ON
0002 LDI X001 ;當輸入點 X1=OFF(常閉狀態)
0003 OUT Y001 ;則輸出點 Y1=ON
0004 END

2. 阶梯图(Ladder Programming,简称LAD):类似于传统上以继电器控制接触器的电路图,梯形图是通过连线把PLC指令的梯形图符号连接在一起的连通图,用以表达所使用的PLC指令及其前后顺序,它与电气原理图很相似。
它的连线有两种:一为母线,另一为内部横竖线。内部横竖线把一个个梯形图符号指令连成一个指令组,这个指令组一般总是从装载(LD)指令开始,必要时再继以若干个输入指令(含LD指令),以建立逻辑条件。最后为输出类指令,实现输出控制,或为资料控制、流程控制、通讯处理、监控工作等指令,以进行相应的工作。



3. 顺序功能流程图(Sequential Function Chart,简称SFC):类似于流程设计(Flow Design),流程图中的步骤组合而完成,主要是规划动作顺序的流程图,故谓之顺序功能流程图。如:劳委会中部办公室所公布之2004年工业配电乙级技能检定术科第三题顺序功能流程图,如下图。所谓步序式控制,即是一步一步控制,而这一步与上一步是有关连性的,有顺序性的。必须有上一个动作(STL),才会启动(SET)下一个动作(STL)。




举个简单的例子,将大象放入冰箱中,第一步先将冰箱门打开,第二步将大象放入冰箱,第三步将冰箱关上。每一个步骤都必须按照这个顺序,不能够缺少,才能完成这项工作。在步进区STL完成后,必须搭配RET完成该步进区。而将许多STL结合后,即是SFC。 简单的控制程式如下:

位址 指令 功能變數
LD X000 ;打開冰箱完成
SET S000 ;將大象放入冰箱
STL S000 ;步進區:將大象放入冰箱
OUT Y001 ;將大象放入冰箱
LD X001 ;等待大象放入冰箱完成
SET S001 ;將冰箱關上
STL S001 ;步進區:將冰箱關上
OUT Y002 ;將冰箱關上
RET ;步進區結束
END

4. IEC 61131-3:IEC 61131-3是一个国际标准,它规范了 PLC 相关之软件硬件的标准,其最终的目的是可以让PLC的使用者在不改 软件设计的状况下可以轻易更换PLC硬件。
功用:软件开发效率之提升 在POU或工作表(worksheets)中的程式设计可使用结构化的设计方法,透过功能及流程的区分建立程式。此方法能让多位设计师区分出其中的程式设计,而达到大量减少程式建立的时间。
ST语言类似于PASCAL及C语言,因此可利用 与微电脑及个人电脑相同的程式设计技术进行阶梯式语言所难以执行的复杂计算,完成程式的建立。常用的程式及回路可透过FB(功能区块)的建立轻易地重复利用。
IEC 61131-3涵盖之程式:
IL (指令集)、LD (阶梯图)、FBD (功能区块图)、ST (结构化文字)、SFC (时序流程图)

目前这个标准主要是由 PLCopen联盟 http://www.plcopen.org 在推广。
5.其他:另外还有功能图(Function Chart Programming,FBD)以及欧洲常用的IEC编程方法,是各种PLC编程语言规范化的方向。 一些高档的PLC还具有与电脑相容的C语言、BASIC语言、专用的高阶语言(如西门子公司的GRAPH5、三菱公司的MELSAP、富士电机的Micrex-SX系列),还有用布林逻辑语言、通用电脑相容的组合语言等。

大体而言,阶梯图程式目前依然是应用最广泛的撰写语言,因为它与继电—接触器控制线路非常相像,容易学习,使用方便。


通信单元及通信协定
PLC的通信单元主要可以区分为程式书写通信PORT、及外部资料控制撷取PORT。
程式书写通信PORT,我们通常只会拿来做资料书写或者是给外部PC设备做读取用。
外部资料控制撷取PORT,我们通常会拿来做外部资列撷取及送出资料控制用,通常再做这方面的程式编写时,须具备通信观念的专业人士才能够容易上手。一般顺序控制的程式设计师会比较不容易上手。在FA业界中的人机接口及图控程式也是由此延伸出来的。
PLC通信规格可分为: RS-232、RS-422、RS-432、RS-485、IEEE 1394、IEEE-488(GPIB),其中RS-432最为少见。 其资料格式长度大部份为10笔或11笔,相关格式请参阅各设备说明,因为各设备皆为不同所以在此无法说明很详细。 目前国际中最常用的通信协定为MODBUS-ASII模式及MODBUS-RTU模式,此为MODCON公司所制定的通讯协定。PROFIBUS则为西门子公司所制定。日本三菱公司则自家推出CC-LINK通信规格。

PLC未来展望


关于PLC电控工程师的训练
对于企业来讲,不管使用任何开发环境,最注重的不外乎成本、效率。在软件开发上,要求的重点便在于工程师可以在最短的时间开发出程式,程式具有可重用性,以及新人的训练成本可以降到最低。
如果你是一个机台设备的电控开发厂商,当然希望引进的员工能对 PLC 有一定程度认知,最好不要训练就可以开始进入程式写作。但以现在台湾的教育环境,技职体系已经逐渐放弃实习,相关科系最多只教一些基本设定,普通大学不管是电机、机械、资工等控制相关系所更是三不管地带,学校完全没有针对性教学。在这种情况下,如果使用传统阶梯图来训练新PLC 程式工程师,还需要解释一些工业电子才能开始入门。
如果有心想成为自动控制方面的工程师,可参加职业训练局、生产力中心或坊间的机电整合相关训练,以职训局的机电整合班的教学为例,强调实务技术的能力;实习的课目尽量接近实际场合,从一个系统抽出一个部分:由传感、控制、 驱动、及机构等组件的实习中,使学员能认识机电整合的概念,学员在学习了机械、电子、电机、电脑方面的技能后,应用于实习课目上,培养学员创造的能力。职业训练局机电整合班有产生合作关系厂商,各行各业均有,产业别如:各行业设备生产制造及研发公司、环境监控公司、生技科技制造研发公司等都有联系。至于坊间"电机补习班"大都以考照为目标,缺乏整体教育训练,但大都设有实习场所与教材,对于学习上也可做为一种管道。每家PLC原厂如有设置服务点,大部分皆会提供定期教育训练,部分甚至可在预约后至公司做教育训练与业务需求拜访。
对于PLC初学者应首当学习阶梯图,对于简单的控制,如简单的开关直接驱动灯号显示,打开电源开关等,应该是最容易表达,最快可以完成的程式写法。但对于不在硬件支援列表的控制元件,程式设计者很难用阶梯图去开发函数库。对于不是单一制程的机器,能弹性加工不同产品的设备,可能需要依照使用者设定的配方去跑,或者需要简单的排程处理一些产品的优先加工顺序,或是需要一些数学函示运算,这些要求对阶梯图的方式都有表示上的困难。且当程式大到一定程度,阶梯图的程式就远不如结构化的高阶语言能够很快的看懂,不管是开发或者后续的程式维护,对于设计者都是很大的挑战。因此有出现一种OpenPLC 的语法来弥补这项缺失。
技术文件取得
对于一个程式设计工程师,在选择使用各家不同的开发环境工具的熟悉程度和操作是否人性化都是选择重点。但是当面对全新机台的开发,某些领域是过去未曾接触过的,这时候技术文件是否可以很容易取得, PLC 研发技术文件的支援,便成为这项电控研发案的成败关键。各家 PLC 厂商在一般的程式语法上大都有提供说明文件,或者从官方网站经会员注册后皆可下载相关技术文件与撰写程式,如有困难也可联络供应商请求技术支援。
电控工程师经常面临的共有8大问题:
1.交期延误 2.设计者独立作业 3.设计者异动,造成大冲击 4.试车拖延 5.程式缺设计手法 6.程式缺模拟验证 7.文件资料不全 8.不易传承等。
其中第二~八项只须提升电控能力即可改善,因此台湾设备厂商最大的风险就是电控能力不足,而改善电控能力,则可解决80%的设备厂商问题。为加强电控设计手法,奇美力推“CMO设计手法”,而友达以及工研院也同样推出“MSD设计法”,两者都是采取类似步进流程图(SFC)方式的模组化设计,以接近PC常用的标准流程图方式规划PLC程式,让经验快速累积、技术加以传承,据奇美的相关教学文件表示,引进CMO设计手法,设备厂商可节省5年摸索时间。

OpenPLC
PLC 在台湾大部分为 Mitsubishi PLC或 OMRON PLC的市场,因为在台湾与中国的PLC市占率高,但在欧美市场则在各家都有一定占有率。
在欧洲,大部分的 PLC 厂商所提供的开发工具都支援 IEC 61131-3,在欧洲的 Mitsubishi也都有提供 IEC 版本的 GX IEC Developer以满足市场需求。
IEC61131是一个国际标准,它规范了 PLC 相关之软件硬件的标准,其最终的目的是可以让PLC的使用者在不改软件设计的状况下可以轻易更换PLC硬件。
目前这个标准主要是由 PLCopen联盟[1]在推广。
IEC 61131-3是其中开发软件接口的标准,它主要是提供了五大程式接口,包含:
1. Instruction List, IL (文字) 类似组合语言的描述文字。
2. Structured Text, ST (文字) 类似 PASCAL 的语法,适合撰写较复杂的算法,除错上也比阶梯图要容易得多。
3. Ladder Diagram, LD (图形) 传统阶梯图,让熟悉阶梯图的使用者也能使用 IEC 61131-3,不会因为换了 IEC 61131-3 就需要重新学习。
4. Function Block Diagram, FBD (图形) 以画电路图的方式来写 PLC 程式。这在 Mitsubishi PLC 或 OMRON PLC 都需要另外购买才有提供的功能或是有硬件支援/相容性的问题, 但在 IEC 61131-3 它是内建的程式接口。

5. Sequential Function Chart, SFC (图形) 以画流程图的方式来写 PLC 程式,这也是最好的一点, 因为大部分的 PLC 都是按一定的顺序在运作,利用步进流程(SFC)将程序一步一步写好,最后再串连测试。
source from: PLCopenHome [2]
OpenPLC特性

IEC61131-3 可以使程式码重用性提高

符合 IEC 61131-3 的开发环境会把程式区分为许多 POU (Programming Organization Unit),如函式(Function)、功能区块 (Function Block)、程式(Program)等。
每个 POU 可以再分两个部分


Common Elemonts

此部分主要是定义程式内所使用到的变量,这些变量可以 对应到实体,也可以是内部变量。


Programming Languages

此部分主要是程式内容,也就是上述的 5 种程式语法的任一种。在程式内可以叫用其他的 POU。 因为变量宣告部分与程式内容是分开的,所以可以在写好程式后,在对应到实体时,才把变量所对应的实体IO点给定,而不必修改程式。这使得硬件变更时,程式不必修改就可以使用。对于在开发另外的新机台时,旧有 POU 的重用机会提高,在使用时,也只需要定义实体IO点,不会因硬件变更,修改程式而改出新的BUG。如此,软件公司可以把常用的功能写成 POU,日后变成自己的函式库写 PLC 就更容易了,或是专门开发 POU 的函式库作为产品也是可以的,因为组译过的 POU 就像我们买一般电脑语言的函式库一样,是看不到源代码的。


OpenPLC是依照 IEC61131-3 标准来开发 PLC 系统,相对应的技术文件都可查询得到[3] ,关于硬件间的相关接口的技术文件,相关的文件手册都在网络上公开,任何人都可以下载,因为是开放标准,如果厂商封锁特定的技术文件,使用者在得不到协助的状况下,仍可以很轻易的选择转换到其他公司产品。
OpenPLC程式开发者可以利用高速工业网络,直接将所有的 IO 状态对应到Network上,直接在自己的工作电脑执行所有的 PLC 程式,在线上直接观察程式执行状况,变量变化,或设立中断点单步除错,或者使用其提供的工具,画出 IO 点执行的时序图。

而这些动作在个人电脑与实际硬件并无差别,但提供程式设计者更快速找出程式问题,缩短开发时间。对硬件的改变也只有搬一台电脑,拆装工业网络连线。如果机构还没完成, 由内附的TwinCAT 本身也提供模拟环境,直接以图示、动画的方式连结到对应实体的 IO 点,让程式执行结果,以模拟动画方式,让开发者在没有实际硬件的情况下,可以同步开发程式,并模拟执行结果,让整个计划的设计工作,可以软硬件同步执行,有效缩短开发时间。


OpenPLC 阵营,只要周边硬件有公开的通讯协定,软件工程师便可以使用 Structured Text (ST) 打造自己的专属函数库,减少控制硬件互相绑规格的情况。
如果每一项硬件在使用前都事先自己打造专属函数库,对开发商来讲也是一项很大的成本开销。
除了 PLC 硬件供应商也不断的增加支援的硬件来吸引设备开发商使用,电控供应厂商也开始使用标准的工业网络来做为硬件通讯接口,例如目前在高速工业网络接口 CANopen 针对常用的装置,如马达便定义在Profile 402,将使用者会用到的功能、参数定义成标准通讯接口,让系统间只要插上通讯线,便可开始交换资料,让:使用者有使用开放系统不会被硬件绑死的限制,也有封闭系统只要插上,就能开始通讯的便利。


PLC的应用实例
PLC以CPU执行顺序控制,它具有内存可进行储存各输入,输出点状态,使用者可进行编写的逻辑控制程式,PLC本身功能即包含传统的继电器、计数器、计时器等硬件元件相同的功能,且体积小、重量轻、功耗低,不仅可缩小控制系统空间,配线容易,维修方便。其程式撰写方法简单,容易掌握,可经由更改控制程式修改原本执行工作的动作,具备模组化架构及弹性化工作能力。
由于具有使用容易,节省配线人力,设计弹性等优点,已广泛的应用于各种控制系统中,在工厂自动化、监视控制中担任核心控制任务。
目前市面上之PLC种类繁多,依照制造厂商及适用场所的不同而有所差异,但是每种厂牌可依机组复杂度分为大、中、小型;而一般工厂及学校通常使用小型PLC,在 工业用途通常使用大型PLC 应用如:

半导体晶圆厂的各种自动化设备的控制
大楼电梯
停车场机械设备
自动化生产线




自定义分类:
数字逻辑嵌入式系统
 
贡献者:
3G不好说
Copyright © 1999-2024 C114 All Rights Reserved | 联系我们 | 沪ICP备12002291号-4