富士触摸屏和西门子PLC通讯中的问题及解决方案

分享到:
点击量: 214479

    对于模拟量同样如此,只不过在模拟量中你需要指出模拟量所占的字节个数,其他的同数字量一样简单。

    可以说,UG00S-CW在处理基本的模拟数字量的时候非常简单、方便,但是在处理一些较为复杂的情况时却遇到了意想不到的问题。在这个食品生产线的集中控制系统,其中就涉及到富士触摸屏和西门子PLC中的通信格式的兼容问题。

    系统中有些PID控制的模拟量需要用趋势图来显示,UG00S-CW中显示趋势图并不复杂,首先点一下趋势图的图标,在弹出的对话框中选择趋势图的类型,然后选择每条曲线对应的地址即可。但是在联机调试时却总是出现comunicationerror(通信错误)信息,经过排查发现问题出在趋势图上,如果将趋势图从程序中去掉,则一切正常,后来我就尝试先将西门子PLC中的对应的模拟量数据读入触摸屏的缓冲(即内部存储区),然后将趋势图每条曲线的地址改为对应的内部地址。经过联机调试,发现不再出现comunicationerror信息,但是趋势图的曲线的显示却极不正常。经过观察,发现除了当模拟量的值为零时曲线显示正常,而为非零时曲线则指向无穷大。这个问题曾让笔者百思不得其解,后来终于想到有可能是西门子PLC和富士触摸屏在存储格式上可能会不兼容。原来富士触摸屏中趋势图中的模拟量一般都是双字(4字节),它从西门子PLC读取的顺序是将**字读为高字,**个字读为低字,而西门子PLC中模拟量的存储为先存低字再存高字,这样富士触摸屏从西门子PLC中读入的数据刚好都是高低字颠倒的。因为一般模拟量的值都比较小,所以高字都为零,这样相当于将原来的值乘了一个2的16次方的数,远远超过了模拟量的上限,所以才出现了以上情况。

    为了解决以上问题,需要将PLC中的数据读入,然后依次高低字颠倒,然后再将趋势图的曲线地址指向存储修正数据的内部地址即可。为了完成这个功能,需要用到UG00S-CW的宏指令,富士UG00S-CW平台提供了丰富的宏命令集,

    主要有以下几类:

    屏幕类,当打开一个界面时可执行的OPENmacro,当关闭一个界面时可执行的CLOSEmacro,当打开一个界面后不断循环执行直到这个界面关闭为止时停止的CYCLEmacro。

    按钮类,当按下一个按钮时可执行的ONmacro和当松开一个按钮时可执行的OFFmacro。

    宏模式,即宏指令程序段受某一个比特位的控制,当这一位为1时执行,为0时停止,这个比特位可以是PLC中的地址,也可以是触摸屏的内部地址。

    富士UG00S-CW的宏命令集和汇编语言非常相似,不过此外还增加了许多系统命令功能和辅助功能,使得开发程序更加方便快捷。触摸屏中的存储格式是字,地址用$u来表示,例如$u1000就表示第1000个字,$u1000-14就表示第1000个字的第14位,触摸屏中没有用来表示字节的地址表示方式。在这个食品生产线上有多个PID控制回路,每个回路对应一个趋势图,以**个回路为例,它占用Buffer1(*多有12个Buffer可供使用)趋势图有三条曲线PV、SP、OP,它们所对应的PLC地址分别为DB10:DBD0,DB10:DBD4,DB10:DBD8,然后将调整后的地址存入定为$u500~$u505,程序段如下:

    /*首先将模拟量读入触摸屏内部,使用块赋值BMOV指令,即将DB10:DBD0~DB10:DBD8赋值到$u500~$u505*/

    $u500=DB0010:0000C:12(BMOV)

    //下面将各个量的高字和低字颠倒

    $u600=$u500(W)

    $u500=$u501(W)

    $u501=$u600(W)

    $u602=$u502(W)

    $u502=$u503(W)

    $u503=$u602(W)

    $u604=$u504(W)

    $u500=$u505(W)

    $u505=$u604(W)

    然后将此程序段拷贝到每一屏幕的CYCLEmacro中,然后将buffer地址初始地址指向$500,抽样模式定为:ConstantSample,曲线条数(即No.ofWord)定为3条,存储长度为500,其他的设置为默认值,趋势图中对应三条曲线的地址改为$u500,$u502,$u504,这样才能保证触摸屏中的数据和PLC中的数据同步更新。将程序下载到触摸屏,经过联机测试,一切正常。

    3、结束语

    富士触摸屏以及西门子PLC由于其产品具有很高的稳定性,而且在软件开发上非常高效快捷,因此在工控方面,两者相结合是一个很不错的选择,能够充分发挥两者的优点。但是由于两者毕竟不是同一厂商,所以难免会在某些细节的兼容性上会有纰漏,这是我们在设计工控系统时特别要注意的地方,硬件漏洞软件补是IT界永恒不变的方法,在开发商还没有使他们的产品尽善尽美之前,我们应当运用我们自己的智慧来完善我们的系统。