PLC可编程控制器的实现分为硬PLC和软PLC。
首先来讲下什么是硬PLC:所谓硬PLC从严格意义上来说是由硬件或者一块专用的ASIC芯片来实现PLC指令的持行.而软PLC是用一些通用的CPU或者MCU来实现PLC指令的解释或者编译持行.
像三菱(FX)和欧姆龙的PLC多是硬PLC,而西门子的有几种型号是属于软PLC的。
硬PLC的核心是一个位处理器,也就是一个持行PLC专用指今的ASIC芯片,以前各厂商的这种处理器执行的是自家指令,但自从伟大而神圣的IEC61131-3出现后,大家都向这个标准上看齐了,IEC61131-3定义了5种语言——LD、FBD、SFC、ST、IL其中IL是最像汇编的,所以大多数厂商的这个位处理器都是执行的一种类IL语言。我们在这里将这个位处理暂命名为IEC处理器。也有厂商用FPGA来实现这个处理器,由于这个处理器执行的是专用指令,所以速度相对软PLC来说要快许多倍。但它也有它的弱点,就是灵活性不高,并具一般只能处理位指令,而现代的PLC功能越来越强大,对模拟量的处理已和DCS不相上下,所以厂商一般要另加一块通用CPU来处理模拟量和复杂功能的实现。
软PLC分为编译和解释两种实现方式,其中解释型有点像早期的大型机一样,是基于一个虚拟机的,程序由一些伪代码组成,工程师在上位机编好程后通过编译器转换为这种专用的伪代码下载到PLC内。运行时虚拟机扫描并解释这些指令运行,这样的实现方式使工程人员编的T型图之类的与底下PLC的软件平台无关,保证了PLC核心的独立性,同时它能很好的扩展软件和功能块而不受硬件环境的影响,但这种方式是最慢的一种方式。
软PLC还有一种是编译方式,编译方式是将各种IEC指令转换为汇编或者C语言,再将其插入到一个框架代码内调用C或汇编编译器生成真正的CPU指令。