编程软件的好坏,除了实现基本功能之外,主要体现在用户操作起来是否直观、简单、方便,初学者是否容易入门,是否能防止用户的误操作,是否容易查错等。
在设计编程软件时,可以参考行业内的大公司(例如西门子公司)成熟的PLC编程软件。对于一个熟悉主流PLC编程软件的用户,如果不需看入门文件和帮助文件、不需要培训,就能较顺利地用第一次使用的编程软件来完成基本的操作,这样的软件在使用方便性上就是成功的。
1 使用户操作简单方便的措施
1.基本操作
同一个功能最好能分别用菜单命令、工具栏上的按钮、右键快捷菜单命令这3种方式来实现。
1)菜单的设置
建议尽可能仿照国内广泛使用的主流PLC的编程软件的菜单设置,使用户易于过渡到新的编程软件。
2)工具栏上的按钮
同一个操作,使用工具栏上的按钮比使用菜单命令更为方便。按钮不要太大,光标放到某个按钮上,应能自动显示描述该按钮功能的文字。按钮最好能提供所有最常用的操作。按钮的个数如果太少,有的操作不太直观方便。按钮的个数太多,占用的空间太大,应折衷考虑。最好能分组关闭或显示按钮。
3)右键快捷菜单
点击窗口中的某个对象或区域,出现包含与它有关的最常用的指令的快捷菜单。因为与特定的对象有关,使用快捷菜单中的指令比使用菜单中的指令更为方便。
2.大量使用拖放功能
拖放是一种极为方便直观的操作方法。拖放功能是指将一个对象从一个地方拖到另一个地方,例如在硬件组态时将一个模块拖放到机架,在生成程序时将指令列表中的一条指令拖放到梯形图中,组态网络时将通信接口拖放到网络上等。西门子的新一代软件TIA Portal的拖放功能无处不在。
3.强大的帮助功能
帮助窗口中的“目录”选项卡应包含编程软件的使用方法,和与编程有关的全部信息。此外帮助窗口还应有“索引”和“搜索”的功能。
好的编程软件应有覆盖面广的在线帮助功能,打开某个对话框的选项卡,选中某个菜单中的某条命令,选中指令列表或程序中的某条指令,按计算机的
4.剪贴板功能
可用键盘、鼠标选中画面上的个别或多个对象,然后可以通过剪贴板进行删除、复制、粘贴、剪切等操作。
软件应是开放的,可通过剪贴板实现编程软件中的内容(例如指令表程序)与别的软件(例如Word和Excel)的相互传送。
5.仿真器
如果仅仅用梯形图来仿真,受到的限制很大,因为往往不能同时看到感兴趣的全部变量。建议采用西门子STEP 7的仿真软件PLCSIM的方案,被仿真的对象以字节、字或双字为单位,由用户生成。也可以采用类似于监控用的变量表的方式,用一行监控一个字节(8个位变量,每个位变量用一个小方框表示)、字或双字。
在关闭仿真软件时应能自动保存当时的仿真对象的设置。
6.程序段的划分
西门子的S7-200/300/400的梯形图程序被划分为程序段(Network),一个程序段只能放一块独立电路,有的程序段只有一条指令,这样导致梯形图很不紧凑。S7-1200允许在一个程序段中放多块独立电路(即允许合并S7-200/300/400的程序段)。建议梯形图不要划分程序段,或采用S7-1200的方案。
7.可组态的界面
编程软件的界面可根据用户的需求和爱好来设置,例如显示工具栏上的哪些按钮,打开程序块时程序编辑器的初始显示方式,可关闭和显示注释,可调整触点的宽度和表格显示的内容等等。可参考STEP 7的“选项”→“自定义”菜单命令的功能。
8.其他
建议变量的定义采用比较直观的表格方式,而不是文本方式。
IEC 61131-3规定地址前面要加百分号,例如“%IB0”,建议在输入时允许不输入%,输入后自动添加%。
2 防错和查错的措施
应以预防为主,尽可能让用户想犯错误都犯不了。在操作过程中检查错误,即使给出错误信息。在操作完成时进行总体检查,显示操作过程中检查不出来的错误的信息。
1.防止程序输入出错的措施
如果输入了错误的数据类型、地址或常数,用红色或别的方式标记,提醒用户改正。也可以自动弹出错误信息对话框。
在编译程序后给出程序的语法错误,显示错误的位置和错误的内容。双击编译信息中有错误的行,自动打开出错的程序,光标放在出错的位置。
2.防止错误操作的措施
在硬件组态时选中某个模块,用颜色显示允许添加该模块的位置或插槽,在拖放模块时用光标显示是否允许模块放在当前的位置。
根据当前软件的操作和选中的对象,禁止当前条件下不允许的操作,例如禁止执行某些菜单命令,禁止使用工具栏上的某些按钮,禁止使用对话框中的某些多选框和单选框。被禁止操作的对象用灰色显示。
3.检查错误的措施
在操作结束时(例如点击“确认”按钮关闭对话框或编译硬件组态),检查操作是否成功完成,如果有操作错误,则显示出错误信息。
我从事PLC应用工作已经有20多年了,也设计过仿三菱PLC的单板式教学实验装置(包括编程器功能)。使我痛心的是我国PLC市场长期被国外产品占领。近年来国产PLC有了长足的发展,让我们看到了希望。我愿意和国产PLC厂家探讨技术问题。