在回答这个问题前先介绍一下自己的工作背景吧(时间前后有重叠),自我感觉还是可以回答这个问题的:
×使用单片机开发专用仪器、控制器、操控面板、传感器
×使用 移动车辆控制器(即防护性更高的PLC)、IO、HMI设计智能机械电气系统
×使用 单片机 制作通用控制器(PLC),支持IEC61131-3环境,见下图:
内部电路见下图:
内部电路见下图:
我是从 使用MCU开始->使用PLC->设计制造PLC->设计制造高级PLC(此步是目标:)
我是从 使用MCU开始->使用PLC->设计制造PLC->设计制造高级PLC(此步是目标:) 工作快10年,软硬件通通干,今天总结下,不过就这几步,实在感慨啊。。。 看到这个题目,心里有很多话想说,我自己非常喜欢工控技术,所以慢慢讲吧:
第一:PLC中的用什么处理器? 低:微控制器(16位典型:C166核MCU;32位典型:ARM7、M3、M4) 中:嵌入式微处理器(典型:ARM9、A8、A9) 高:中央处理器(典型:X86) 不少专用PLC还附带DSP或FPGA以应对一些特定的性能要求;还有一些量大的低端PLC为了节省成本,厂家用自己定制的微控制器(典型:西门子S7-200) 因此可以看到PLC档次的不同、专业的不同,几乎把所有带运算能力的器件用了个遍;
第二:单片机、PLC两个概念的割裂? 如果从元器件上看到了单片机系统和PLC的联系之外,对于使用者来说,其实看到的更多的是两个概念的割裂,我从下面几个方面讲: *开发、调试方式:
现在单片机的开发、调试方式主要是在集成环境下完成,使用C语言进行设计,并配合专门的硬件进行软件仿真,仿真常会受到硬件环境的限制,例如断点数量受限、无法查看程序堆栈、无法运行时监控变量,难以记录程序流等等。
而PLC是采用更贴近工程目标的语言,比如梯形图编程,而近些年,IEC-61131-3标准的推广,越来越多的PLC支持多种编程语言,如类似C语言的ST语言,类似电路图的CFC语言,而调试手段更是灵活,可以通过多种介质,如串口线、网线、CAN总线进行程序下载及调试,因为调试是软件调试,所以功能更加丰富,例如几乎无限的断点、运行时监控程序流及变量、变量值跟踪等等
更厉害的PLC编程环境甚至把组态软件的功能也带进了编程环境,及可以方便的制作电脑监控软件,下图展示了图形编程以及组态功能,PLC软件在控制器内运行,电脑端及可以进行程序调试,还可以制作监控画面:
这种便利的功能是传统单片机开发环境无法实现的
因为开发方式完全不同,以及对相互领域的不了解,使得使用者觉得单片机和PLC是两个完全不同的概念。事实也是如此,目前为止,使用单片机开发产品和使用PLC开发项目的人群基本上也是没有重叠的。
*应用对象及环境:
那这两种东西分别适合什么应用呢?我觉得很多回答进入了一个误区,通过设备的可靠性来区别,如果说PLC面向可靠应用,单片机系统就不可靠了?
我觉得,最理想的划分是按照项目的类型区分:
单片机系统适合量大的,功能无需逐台更改及调试的产品
而PLC更适合量少、项目具有特异性而需要进行程序调整的项目,比如,世界上没有两个一模一样的化工厂,所以不同厂家的自动化设备必然存在某些差异,这些问题有的甚至需要工程师在现场解决,这样的应用使用PLC无疑更理想
至于可靠性,有可靠性很普通的便宜PLC,也有可靠性非常高的非PLC 电子设备,这些反例说明可靠性不是用于区别PLC与单片机适应性的标准。所以从这个方面进行讨论是不可能得到结果的。
*使用者知识背景:
第三:所有PLC都一样么?