您的位置:控制工程论坛网论坛 » PLC与PAC » 软PLC 的两种类型

解脱527

解脱527   |   当前状态:离线

总积分:877  2024年可用积分:0

注册时间: 2007-09-03

最后登录时间: 2009-11-12

空间 发短消息加为好友

软PLC 的两种类型

解脱527  发表于 2007/9/19 11:09:33      649 查看 2 回复  [上一主题]  [下一主题]

手机阅读

软PLC架构大多只有一块通用处理器,软PLC的出现主要基于这么一个考虑:通用MCU的价格越来越低性能越来越高。特别是解释型的虚拟机架构在DCS上面得到了多年的运用,所以在前几年大家纷纷推出了自已的软PLC。目前国内大多数小型PLC都是软PLC,使用的MCU主要是日立的H8,西门子的C164系列,然后其它低档的大多是89C51了。在实现上面大多数小PLC都采用编译型,因为小PLC大多采用的是低档低速的MCU,没有足够的资源的成本去采用解释型的运算。相反中大型的软PLC有不少是采用解释型的处理方式,比方说现在商用ISAGRAF、KW、一方梯队等都可以根据用户的需要选取是编译型还是解释型。
   
    通常硬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系列,程序员编写完程序后通过终端把自己的程序录进大型机排队运行。因为大型机的厂商不同,各厂商的机器码也不同,所以大家都在大型机上运行一个虚拟机来统一程序员对口的指令。

1楼 0 0 回复
总共 , 当前 /