发表于:2011-08-31 10:49:28
楼主
一、三菱PLC的局限
三菱PLC是较早进入中国市场的PLC之一,在中国市场占有较大的份额,国内很多人都曾研究过或还在研究三菱的PLC,但大部分的研究局限在指令描述、通讯命令和文件结构上。其结果是国内出现了很多的三菱的仿真PLC,真是五花八门,各种形态的都有,这类PLC直接使用三菱PLC的上位机软件进行编程和调试,在技术上并没有任何创新之处,因为三菱PLC的局限没有得到任何的改进。三菱PLC的局限在哪些方面?暂且不谈,后面详解。
三菱公司是较早研究和应用PLC的公司,三菱早期的PLC,如:FX0S、FX1S、FX1N等系列的PLC现在还在使用和生产中,这些PLC从最早量产到现在恐怕有一、二十年了吧,这一方面说明了PLC的可靠性,另一方面也说明我们现在还在用几十年前的产品和技术,这恐怕也只有PLC这类工控产品了,要是消费类电子产品,应该进博物馆了。
搞电子产品设计的人都知道,过去的一、二十年,电子技术、软件技术取得了巨大的进步,CPU从8位发展到32位,软件编程从汇编语言发展到C/C++,软/硬件设计工具、调试工具非常强大,可以在短期内设计出功能强大的产品。
记得在1982年做毕业设计时,写一个2K的程序都要花半个月左右,那时IBM-PC都没有,更没有电路板布线软件和编译器之类的软件。程序写好要自己翻译成机器码,用键盘逐字的敲入,外部存储器是普通的录音磁带,在此情况下要设计功能强大的产品是很困难的,或者是很高昂的,需要在计算中心的大型机上实现。
因此,早期的电子产品有很大的局限,功能上较为简单,没有体系架构,这点在三菱早期的PLC上得到了很好的体现,也一直延续到现在,归纳起来有三个方面,分别是:指令系统、通讯协议,上位机软件。
1、 指令系统
三菱PLC的指令系统让我们清晰地看到三菱早期PLC结构简单,功能弱的痕迹。在三菱的PLC中,将一条基本指令称为一程序步,一程序步占一个字内存(16比特位,2字节),字的高4位代表不同的指令,字的低12位为操作数。4比特可以代表16种状态,0和1用于功能指令的扩展,2~7分别表示LD、LDI、AND、ANI、OR、ORI,8和A用于标识数据,9和B未用,C为OUT指令,D为SET指令,E为RST指令,F表示单字指令。
12比特数可以代表4096(0xFFF)种状态,这4096分为6个区:
0x000~0x3FF: S寄存器区, 最大1024;
0x400~0x4FF: X寄存器区, 最大256;
0x500~0x5FF: Y寄存器区, 最大256;
0x600~0x6FF: T定时器状态区, 最大256;
0x700~0x7FF: 内部使用;
0x800~0xDFF: M寄存器区, 最大1536;
0xE00~0xEFF: C计数器状态区, 最大256;
0xF00~0xFFF: M8000~M8255, 最大256;
这些值在FX1S、FX1N中基本够用,超过上述范围的值需使用扩展指令,在三菱FX2N中, 就将M寄存器扩展到M3071。
因此,在三菱PLC中,有些存储区是不连续的,分别在不同的位置,不过这些对用户并不重要,但从另一角度看,这是很不合理,是无奈的、打补丁的方法。这只是内存的安排方面,功能指令的设计则更不合理,三菱PLC有些指令长度到达17步,而实现相同功能的指令,英凯的PLC只要10步。
三菱PLC的指令只适合软解释,若要实现硬解释将是很昂贵的。
2、 通讯协议
三菱的通讯协议更是简陋,只有几个命令,而且是直接读/写PLC的内存地址,这极大地限制了PLC的灵活性,相反,却对*解三菱的PLC提供了便利,这也揭示了市场上为何有很多三菱仿真PLC的原因。事实上,三菱PLC的密码保护功能形同虚设,没有什么作用。
3、 上位机软件(平台软件)
三菱PLC的上位机软件有很多种,如FXGP/WIN,功能很弱,不值得一提,功能稍微强点的,如GX Developer,看上去功能按扭很多,但大部分是针对梯形图编辑的,其实,功能很一般。而且这种布局并不好,无用功能的按钮占了屏幕的很多空间。三菱的上位机软件还称不上是平台软件。
事实上,PLC的平台软件在PLC体系中占有非常重要的地位,也很难搞,需要投入大量的人力和物力,而且看不到利益,国内对这方面的研究是不感兴趣,这也导致我国的PLC技术长期落后于国外。相反,对PLC硬件产品的研究倒是很热闹,各种实现都有,这是因为产品搞出来就能变现,多容易啊。
平台软件应该如何定义?应该有哪些功能?这是仁者见仁、智者见智的问题,在超越部分中所述的平台软件的功能都是三菱PLC软件所不具备的。
二、超越三菱
这个话题很沉重,同时也是多少工控人的梦想,我提出此话题恐怕要招人攻击,因为,三菱PLC在中国市场的使用已经很广泛了,拥有大量的客户群或粉丝,他们已经习惯了三菱的那套东西,已经习惯成自然,熟能生巧了。我出此言有点不自量力。
1、 要超越三菱,首先得站在三菱的肩膀上,这就要求在梯形图和指令表这一级要兼容,这样可以最大限度的利用现有的资源,节省人力物力,保护用户的先期投入。在指令的内部实现这一级(即指令的字节码),由于三菱PLC的指令系统存在局限,英凯PLC重构了这一级,即英凯PLC的平台软件可以导入三菱PLC的程序文件,经修改、重新编译所产生的指令码与三菱的完全不同,这就避开了知识产权的问题。因为PLC的程序文件的知识产权是用户的,用户可以将其转换成任何形式的文件。
英凯PLC的指令系统综合考虑了现有的技术条件和将来的扩展,既适合软件解释,也适合硬件解释(将来有条件做成PLC专用CPU的话)。
英凯PLC指令系统的性能简述如下:
指令的位寻址范围:0~65536, (16 比特位寻址);
指令的字寻址范围:2GW(32比特位寻址);
定时器数量不限,视机器配置;
计数器数量不限,视机器配置;
程序空间不限,视机器配置;
指令数: 4096条以上;
寄存器区数量: 最大30个;
变量类型: IEC61131建议的22种 + 自定义的3种;
2、 通讯协议重新设计,与三菱的完全不同,不直接读写PLC内部的内存,而是根据工作区(寄存器区)及偏移量进行读写,这就对PLC的内部架构进行了有效的封装,内部数据可以任意布局和重构,只要按协议进行通讯即可,不再受物理内存的限制。这极大地提高了构建PLC的灵活性,各种不同规模的CPU都可以构建PLC。
3、PLC平台软件
PLC平台软件在PLC的整个体系中占用非常重要的地位,是最具核心技术的部分。PLC就产品而言,是完整的,就系统而言,只能算是个半成品,PLC功能再强,若没有下载控制程序也不具有任何功能。而控制程序的编辑、调试全靠PLC平台软件实现。在小型的PLC系统中,花在编程和调试程序上的时间和人力所产生的费用远比PLC本身的高,因此,缩短编程和调试程序的时间就意味降低系统成本。
英凯PLC平台软件历经8年的研究和开发,现已基本定型,即将发布。英凯PLC平台软件采用了很多当前最先进的软件技术,简述如下:
(1)、ATL/WTL(活动模板库/窗口模板库),ATL/WTL具有轻量、速度快的特性,相比MFC则过于庞大和臃肿,速度慢。WTL还有一个优点是源码公开,但其架构也非常复杂,需要花很长的时间学习和研究,我就花了近一年的时间才搞懂,并修改了其中的近百个错误,才完成了框架部分的构建。就我所知,目前还没有哪个大型软件是基于WTL的,市场上也没有相关的书籍。WTL应用的最大问题是没有提供对象的序列化机制,我用半年的时间构建了WTL的对象序列化机制。当然上述所说的时间都是业余时间,而非工作时间。
(2)、结构化存储(复合文档)技术,项目中的所有文件都在一个复合文件中,这避免了项目文件在存储、拷贝的过程中遗失文件。
(3)、XML技术,XML文件用于记录各种设备和资源的配置信息。
(4)、HTML技术,HTML文件可以包含各种动态的文字