您的位置:控制工程论坛网论坛 » PLC与PAC » PLC的技术分类

xiao_xiao1

xiao_xiao1   |   当前状态:离线

总积分:9568  2025年可用积分:0

注册时间: 2008-03-21

最后登录时间: 2012-03-20

空间 发短消息加为好友

PLC的技术分类

xiao_xiao1  发表于 2009/1/21 9:30:15      435 查看 0 回复  [上一主题]  [下一主题]

手机阅读

2.2PLC的技术分类:
    经过三十多年的发展,现在PLC现在有许多的变种,但实现的方式主要分为硬PLC和软PLC两大类:
    硬PLC分为并行垂直扫描和串行横向扫描两类,软PLC分为编译型、解释型(虚拟机)两类。
   
    2.2.1硬PLC
    硬PLC是PLC的传统形式,直到现在大多数主流厂商的高端产品都是硬PLC,因为现在PLC对通信和数据运算能力的要求越来越高,所以大多数硬PLC都采用双处理器结构,一块通用处理器负责维护、通信、IO访问、功能块运算,另一块位处理器负责执行逻辑指令,这也就是为什么高端的像AB的ControlLogix系列速度能达到0.01us/指令,大家可能觉得这有什么了不起的,不就是100MIPS嘛,现在P4都到4G了。这是大大不同的,因为指令的粒度不同,运用的范围也不同。
   
    刚说了硬PLC架构大多有两块处理器,也有可能一块芯片内带两块的功能,其中一块通用处理器一块位处理器。位处理器负责处理逻辑,通用处理器负责通信、驱动、功能块运算等其它工作。同时硬PLC又分为并行垂直扫描和串行横向扫描两种,目前使用两种处理方式的厂商都有,双方的区别在于,并行垂直扫描的优点是:1、速度快(理想情况下并行扫描比串行扫描快扫描矩阵的行数倍比方说海维深的V80标称速度是0.2us/指令,但她比同样是0.2us/指令的其它使用串行扫描的PLC理论上可以快7倍);2、可以支持在线编程;3、编程软件可以省掉大部分的编译工作。相反串行扫描的优点是1、比较符合软件工程师的思维习惯;2、单网络大小不受并行扫描矩阵大小的限制。 字串8
    大家如果有兴趣可以拆一两块PLC,比方说三菱的FX2N,LG的K80等,里面常会有一块标有该厂商的MCU,这一块就是他们的位处理器。同时大家可以去国家专利局下载一下各大PLC厂商的专利,其中在硬PLC方面大家的技术其实是差不多的,只是大家都故意把自己的技术说得更模糊,这样一方面可以保护自己的技术,另一方面可以很方便的通过专利认证。
    注:这里说的并行处理,并不是说所有的指令都是并行处理的,主要是省掉了与指令和非指令并且或指令是并行的。

2.2.2软PLC
    软PLC架构大多只有一块通用处理器,软PLC的出现主要基于这么一个考虑:通用MCU的价格越来越低性能越来越高。特别是解释型的虚拟机架构在DCS上面得到了多年的运用,所以在前几年大家纷纷推出了自已的软PLC。目前国内大多数小型PLC都是软PLC,使用的MCU主要是日立的H8,西门子的C164系列,然后其它低档的大多是89C51了。在实现上面大多数小PLC都采用编译型,因为小PLC大多采用的是低档低速的MCU,没有足够的资源的成本去采用解释型的运算。相反中大型的软PLC有不少是采用解释型的处理方式,比方说现在商用ISAGRAF、KW、一方梯队等都可以根据用户的需要选取是编译型还是解释型。 字串5
   
    通常硬PLC要比编译型的软PLC快10~100倍,而编译型的速度要比解释型的速度快3~10倍。大家大都知道C语言与BASIC的区别,C语言就是编译型的语言,BASIC就是解释型的语言。在软PLC里面也同样存在两种类似的实现方式。
   
    那么用那种方式更好一些呢?
    这不能这么简单的说好与坏,如果是DCS或者中大型的PLC采用486以上的CPU那么速度就不是关键了,更重要的是功能和灵活性,那么采用解释型可以很好的解决在线编程和自定义功能块等功能。相反如果在小型PLC里面,成本和性能成为了关键矛盾,如何在低成本的情况下达到最高的性能成为了关键,同时小型PLC大多不需要很复杂的功能,所以真编译应该是最好的选择。国外小型软PLC多采用西门子的C164和日立的H8,特别日立的H8有丰富的位指令,可以比较好的解决软PLC的瓶颈位处理速度慢的问题,而PLC大多数情况下又都是位处理。国内的软PLC除了几家从国外引进技术或贴牌的其它的大多使用89C51,在实现上面编译型和解释型都有,如何区分是编译型还是解释型呢,其实只要看速度就行了,如果单指令速度比较慢的大多是解释型,反之是编译型。

    编译型的实现,简单说就是先将PLC的指令和功能块都用C语言或者汇编语言编写成函数库,然后再用C语言写一个框架代码,用户用梯型图编写完程序后,梯型图编译器将生成一个框架文件,将所有指令的函数替代,并调用C编译器,最后生成单片机的二进制文件,下载到控制器,由控制器执行。刚说过其中有一个框架代码,这个框架代码内就实现通信、IO驱动、管理等功能。而逻辑都由函数库的指令组合完成,如果大家有编译原理的基础,一听就会明白,这其实是回避了PLC开发里面最麻烦的一个问题,也就是编译工具。
    解释型的实现,简单说就是一个虚拟机架构,厂商定义了一种虚拟机指令,其实这个虚拟机就相当于一个软CPU,它也有它的指令,它的指令比方说是IEC61131-3要求的指令等。虚拟机在运行时从代码中逐一取回指令并通过一个查找表跳转到对应的指令去运行,如果大家对早期的大型机电脑有了解,那么一定会知道,当时的大型机资源很宝贵,一般是很多位程序员合用一台大型机比方说PDP系列,程序员编写完程序后通过终端把自己的程序录进大型机排队运行。因为大型机的厂商不同,各厂商的机器码也不同,所以大家都在大型机上运行一个虚拟机来统一程序员对口的指令。
   
    2.2.3PLC技术的选择和对比:
    海维深刚开始控制器研发时,做的是软PLC(PPC31系列中型PLC),采用的是解释型实现,这在中大型的DCS或PLC方面是合适的,但如果要考虑性价比就比较痛苦了,特别是解释型,国内外采用解释型的小型PLC速度一般都相当慢,比方说光洋的好几个系列以及国内大多数新出来的小型PLC。当然并不是说解释型的就不好,只是要达到同样性能情况下需要更高的CPU成本和存储器成本。
    后来在经过一段时间后我们又开发编译型的软PLC(PPC22系列中型PLC)这个系列主要的特点是相对于解释型速度要快很多,同时可以很方便的由用户来增加新的功能块,只需要将用户编写的C函数当成一个功能块来调用就可以了。目前国内有些国产PLC和部分进口的PLC是采用这种技术的,PPC22使用的是486的一颗工业SOC芯片成本比较高,主要是用在工程和大型设备上,相反国内许多小型PLC是用89C51做的真编译,如果用的是标准频率12M的51话,你会很显意的看到厂商标称他们的PLC布尔指令执行速度是1us/指令。
    当02年海维深准备开始进入设备配套小型PLC时,我们深入的研究了大多数已有的小型PLC厂商的技术结构和实现方式,发现如果不采用硬PLC结构将无法满足在低成本的情况下提供更高的性能,同时要想实在运行态在线编程,更只能采用并行垂直扫描硬PLC结构。比如像三菱的FX2N和他中型的A系列和Q系列都是硬PLC结构,其中A和Q系列都是并行垂直扫描硬PLC,而FX2N也是硬PLC,但不太清楚是并行解题还是串行解题的,同样采用并行垂直扫描硬PLC结构的还有AB的大多数PLC,除了它的一种小型PLC外。西门子的S7300也是硬PLC,但S7200比较像是一种软PLC。在了解完后我们还对各家PLC的编解码格式做了一些分析,基本上大同小异,只是为了防止有知识产权的麻烦而有意错分开编码格式。在与小型PLC V80的开发过程中,我们还开发了同样是硬PLC结构的PPC11中型PLC,两者采用同样的软硬件结构,只是功能和性能有一些区别。
    所以我们应该说不同的技术应该用到不同的地方,技术上没法说那一种更好,但从PLC的主流来说硬PLC有着不可替代的优势(远比标称速度上的优势要大很多),现在许多PLC厂商像西门子、横河、AB都有自己的软PLC,但是他们的主流产品还都是硬PLC,这里面的细节说起来可能不是一两天能说完的,简单说来就是可靠性和性价比的区别。日本东芝公司自动化事业部的一位专家介参事长与我有过几次比较深的技术交流,他说到东芝下一代的综合控制器仍然是硬PLC结构。
   
    2.3小结:
    PLC开发的核心点在于一个稳健的硬件平台+高效的执行架构+成熟的编译器,这些核心技术不太方便讲太多,过两年PLC技术通俗化了后,我们再专门写本书来剖析我们这些年的开发成果以及得失。国内从事PLC研究的同志们也可以给我来信来电,我们交流交流

 

 

1楼 0 0 回复