|
一、三菱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文件可以包含各种动态的文字和图像,通过浏览器呈现出动态的效果,在软件中应用HTML技术实现设备、资源、指令应用解释的动态显示。
(5)、FLASH技术,在软件中应用FLASH技术实现程序运行状态的图形化显示。
(6)、软件采用框架+插件的体系结构,各种设备,如:PLC、HMI、OPC等以插件的方式加入到系统中,随用随加,灵活方便。
除了采用这些先进技术之外,英凯PLC平台软件还具许多PLC上位机软件不具有的功能,下面简单介绍。
(7)、能流显示
能流显示能快速定位问题,在能流显示图中,元件的状态一目了然,这对复杂的网络调试非常有用,能够节省大量的调试时间。
(8)、仿真功能
仿真功能实际上只有象征意义,或具有演示功能,因为仿真器无法模拟实际系统的响应,在仿真器中调通的程序在实际的环境中不一定能运行。
(9)、在线编辑
在线编辑功能,对于一些不能停机的设备,或程序比较大而只需要小改动时,是很有用的,否则,每次修改程序都要重新下载是很麻烦的。
(10)、内部数据的显示、监控与保存
很多情况下,在调试程序时,需要知道内部数据的状态,以便分析问题,定位故障,内部数据的显示和监控功能提供一种有效的工具。内部数据的保存和恢复功能则对批量生产设备的用户提供了方便,用户只要将一台配置好的设备内部数据保存为文件,再在需要配置的设备上恢复数据即可完成配置,即节省了时间,还避免的错误。
(11)、结构化梯形图
在PLC中,可以将所有的指令放在一个模块中,这是许多小型PLC通行的做法,简单、易用。在中、大型PLC中,由于系统相对复杂,将所有的指令放在一个模块中会导致结构不清,调试困难,必须将大一统的程序切分为几个较小的、相对独立的模块,如:冷启动模块、热启动模块、关机模块、定时(按时、按日)保存数据模块,中断模块、电源故障模块、通讯故障模块、程序错误模块等,每种模块独立的编辑和调试,再经配置管理器的组合构成完整的控制程序。
(12)、资源配置管理
在小型PLC中,资源很少,资源配置管理并不很需要,在中、大型PLC中,资源配置管理能够有效的利用系统资源,充分发挥PLC性能。
(13)、符号化编程
通常,PLC通过I/O接口控制外部设备,I/O接口则映射到PLC内部的数据区,并且,每一个I/O都有唯一的编号(或地址)方便程序中引用,从而实现PLC的程序控制功能。
I/O接口与设备之间的连接关系事实上形成一张表,这张表我们称为:“地址定位表”,“地址定位表”有两个主要用途:1,程序员根据该表决定了PLC内部地址的使用与分配。2,配线人员根据该表完成PLC的I/O接口到设备之间的接线工作。
在实际工作中,我们会遇到两类项目,新项目和重复项目。对于新项目,接线和编程都会出现大量的错误,甚至在项目进行的中途,大范围更改“地址定位表”都是很常见的,这可能是更换接口卡种类,增加、减少或合并接口卡等引起的。
更改“地址定位表”就意味着要更改配线和程序,如果要在程序中由程序员逐个完成“地址定位表”中的地址变动,小程序尚可,大程序对程序员来说将是个灾难,同时将有可能带来新的错误,使原来运行很好的程序不能运行,因为程序员很少能够把所有改动的地方都找出,并改正确的,除非有软件的帮助。
重复项目同样存在更改“地址定位表”的问题,由于技术进步、市场、客户要求变化等因素影响,项目的内容将更改,原先使用的接口卡可能更新、替换,这都有可能引起“地址定位表”的大幅改动,同样要改动程序。
我们知道,一个程序,特别是大型程序要可靠、稳定地运行,需要大量的人力、物力和时间才能实现,要更改程序就意味着再投入。当然,再投入是不能避免的,将再投入的成本降到最小,换句话说就是将改动量减到最小,是我们的终极目标。
在高级的PLC编辑软件中,引入“符号变量”的概念,能高效处理“地址定位表”的改动问题,
“符号变量”是抽象的概念,当程序中全部采用“符号变量”编程时,程序就不再局限于某种型号的PLC使用了,并能将调试好,运行稳定的程序块,网络块保存到程序库中,供以后项目使用。
“符号变量”与PLC的地址之间是一一对应的关系,也可以认为“符号变量”就是地址的名字。在PLC中,地址通常是用数字表示的,很不方便记忆,给地址赋予名字将使程序的可读性大为提高,也为修改地址提供了方便。
英凯的PLC平台支持符号化编程。
(14)、多PLC联合编程与调试
在一个项目中,可能有多个PLC联网运行,如果平台软件只有编辑、调试单个PLC的能力则很费时、费力,多PLC联合编程与调试功能可以提供方便。
(15)、在系统升级
在系统升级功能对于正处于测试阶段的软件而言是非常有用的,可以随时修改错误,增加功能,而对成熟的软件而言并没有多大的作用,应为成熟的软件很少会再升级。但从另一角度看,如果PLC的硬件可以支持不同体系的软件,将一种通讯的软件升级成另一体系的软件,也许很有趣,也有使用价值。举例说明:如果你购买的是英凯公司兼容三菱指令的PLC,由于实际情况发生变化,你希望将现有的PLC升级成符合IEC61131标准的PLC,或其他的类型的PLC,如兼容siemens指令的PLC等,这一功能就能实现你的要求。英凯公司目前还没有复合IEC61131标准的PLC,也没有兼容siemens指令系统的PLC,但将来会有的。
(16)、产品的个性化管理
英凯公司生产的每一台PLC都有一个全球唯一的序列号,该序列号用于记录该产品生产、制造过程中的各种数据,也可以用于产品的维修、维护,为提供产品的质量提供数据支持。
(17)、知识产权的保护
英凯PLC对知识产权的保护体现在2个方面:一是项目文件的密码保护,密码采用2048比特的密码,如果项目文件设定了密码,要破译是非常困难的,几乎不可能。二是PLC内部的密码,PLC内部采用1024比特的密码,一旦设定密码,下载、上传程序、修改密码都需输入密码,可以有效防止非法获取程序。
三、英凯PLC产品简介
英凯PLC产品目前有4个型号,分别是:IK1S-020-R01、IK1U-020-R01、IK1S-030-R01、IK1U-030-R01。
IK1S与IK1U的差别在于IK1U增加了一个USB编程口,其他的指标是一样的。
下表是IK1S/U与FX1S的基本性能列表
![](http://cache.amobbs.com/bbs_upload782111/files_45/ourdev_672964F6H861.JPG)
(原文件名:2011083100400001.JPG)
IK1S/U-020-R01的外观及接线方式与FX1S-20MR相同,IK1S/U -030-R01的外观及接线方式与FX1S-30MR相同。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981
|