在施耐德Twido plc的编程调试过程中,不可避免的会使用到Twido的在线修改程序功能,因TwidoSoft的自身的特殊机制的影响,使用者可能会遇到一些无法进行在线修改程序的情况,这些影响在线修改程序的情况有时会给调试工作带来不必要的麻烦,例如,在遇到无法在线修改程序时,只能重新下载更改过的程序,这样,Twido PLC会经历一个“停机->下载程序->备份程序到Flash->运行”的过程,而其中的部份操作会清除PLC中数据区中的数据,使使用者的调试数据丢失,调试的程序必须重新开始。为避免这些不必要的麻烦,下面介绍两种类似情况的解决办法。
2 Twido编程中可能遇到的两种无法在线修改程序的情况
Twido程序在下载到PLC时会对程序所使用的内部数据空间进行分配。各种类型的数据空间分配的大小,是程序中所使用数据类型的编号的最大值,例如,在程序中使用到%MW1200,则下载后的程序中允许出现的%MW的范围是%MW0~%MW1200,在线修改程序时,如果输入%MW1202则不被接受。
当然,也可以在程序中指定各种数据类型的空间大小,在菜单PLC->内存使用->编辑中可以分配,见下图。
如果使用程序所分配空间以外的数据区时,在线修改可能不被接受或出现:
对于在线修改程序时需要增加一些数据空间,而所增加的数据超出程序已经分配的最大值引起的无法在线修改的情况,可以在下载程序前开辟一定数据空间备用。可以按上图的方式,也可以按下面的方法实现。
在这一段程序中,开辟了4种数据类型的空间:字%MW最大到%MW1800,位%M最大到%M220,定时器%TM最大到%TM100,计数器%C最大到%C90,可以根据程序的实际情况对以上空间的大小进行调整。
另外一种可能引起无法在线修改程序的情况是非可逆性指令表引起的。在TwidoSoft中,有些指令表程序是无法转换成梯形图,这部分程序被称为非可逆性的,详细可参考相关文档。
在线修改程序时,在梯形图方式下是无法修改非可逆性程序的,例如
对于这种情况,有两种解决办法,一是不使用非可逆性程序结构,但可能失去一些灵活性;另外,可以将程序切换到指令表编程方式,这时可以对非可逆性程序段进行修改,并且,修改后不需确认就可以被接受。
解决好这两种无法在线修改程序的情况,可以使调试工作进行的更加省时顺利。