西门子“TIA博途”:那些令人眼前一亮的功能
一、引言
我们知道PLC即为可编程逻辑控制器,但凡一款PLC都有相应的PLC编程软件作为配套。无论是日系三菱松下欧姆龙,还是欧美系GE施耐德,为了商业利益而各自为营,发展壮大自己的编程软件体系,这也无可厚非。
GX developer、CX-Programmer 、Proficy Machine Edition他们自成体系各自发展,杀得难解难分——这是西门大官人所不愿意看到的,尽管他的STEP7方兴未艾走在PLC编程软件的前沿,但致力于推出工业4.0乃至引领PLC行业潮流的目标推动着TIA博途系列软件的横空出世。
二、TIA博途软件
TIA,Totally Integrated Automation全集成自动化,这正是西门子工业控制的目标。工业控制包括下位机如PLC、上位机如WinCC、触摸屏如WinCC flexible,以及运动控制、驱动、通信等等,而每个分支又有多个版本,如PLC又有LOGO/200/300/400,相应的编程软件又有Step7 Micro/WIN、Step7,这给用户(工程师)带来了极不好的体验。正是在这个背景下,西门子推出了新一代可编程控制器s7-1200/1500,以及集大成者TIA Portal。
TIA Portal支持s7-300/400/1200/1500 PLC的组态和编程调试,WinCC触摸屏的组态和编程调试,SIMOTION运动控制器的组态和编程调试,此外还有附带的驱动和通信。尽管不能涵盖西门子全系列工控可编程产品,但在全集成的道路上迈出了坚实的一步。
三、西门子三款编程软件
当我们电脑的操作系统已经升级到Windows10,各种炫酷的游戏软件层出不穷,甚至一些常用的办公软件也越来越高大上:人机交互性好,界面友好,人性化操作,对比MS word2016和word2000就能明显发现这种变化趋势。
然而PLC编程软件似乎偏安一隅,且不说版本更新慢,而且发展趋势远远跟不上目前常用的办公软件。对比一目了然,PLC编程软件显得更加陈旧笨拙。

再来看看SIEMENS的前几代编程软件或者说是针对不同档次PLC的编程软件,它们的风格也是老旧,仿佛是2000年以前的软件。

如图1的STEP7 Micro/WIN界面和图2 STEP7界面,分别是s7-200以及s7-300/400款PLC的编程调试软件。
作为西门子新一代PLC编程软件TIA Portal,不仅功能强大,当然界面也非常友好甚至有几分最新潮软件的界面外观。配色更丰富,工具栏LOGO也更好看,TIA Portal一经面市就广受好评。如图3为TIA Portal V13 SP1编程软件界面。

四、博途软件的亮点
博途软件不仅仅只是界面有所改观的绣花枕头,也不单单只是把PLC、HMI、运动控制器等集成在一起,正如博途软件的中文名——博大精深。
4.1 硬件IO点标签
博途软件的设备组态,还提供了IO点标签编辑功能,放大硬件窗口,可以看到硬件IO点的标签名,双击即可编辑,也可以打印(贴到实际模块上)。

4.2 对象比较
当我们拿到一份备份程序,即离线程序,连接上了PLC,选择在线模式下监视,如果在线和离线程序不完全一致时,则会在左侧设备树中显示不一致的标记。但有哪些地方不一致呢?

其实在STEP7软件中,程序的比较功能就非常强大,既可以离线与离线选择不同的程序进行比较,也可以在线与离线比较。在博途软件中,这项强大的功能得到了延续,如图5所示为在线与离线比较功能。

此外,还可以离线与离线进行比较,如图6所示。值得一提的是,离线PLC程序必须为本项目树下的对象,这样才可以拖拽进行比较,包括软件和硬件都可以比较。
4.3 交叉引用
每一款PLC编程软件都有交叉引用功能,借此功能,我们可以找到变量在哪个程序段中被使用到了,这对故障调试是非常重要的,尤其是当你不太了解PLC程序的时候,想要快速找到程序中的变量“从哪里来”到“哪里去”。所谓“从哪里来”就是访问方式为“写入”,“到哪里去”就是访问方式为“只读”。

博途软件中的“交叉引用”功能使用非常简单,只需要在程序中选中PLC变量,然后在属性窗口的“信息”选项卡中的“交叉引用”中查看信息。信息窗口显示了变量引用的程序块、使用点、访问类型等等。点击“使用点”中的蓝色条目,可以跳转到程序中变量使用的位置。
4.4 变量分配列表
当我们需要修改PLC程序时,为了避免新增的程序块或者程序段用到的新变量与之前的重复,我们需要查看之前的程序用到了哪些变量。对比GE、施耐德PLC编程软件类似的这项功能,博途软件的分配列表无疑是最直观的。

如图8所示显示了项目的分配列表,通过分配列表我们可以直观看出哪些变量以哪种形式被占用。比如我们需要用到中间变量M位点,如图8我们可以看出MB12~MB19、MB28~MB99未用到,这些存储区都可以使用,如M12.0。
4.5 调用结构

对于一些调用关系较复杂的程序块,大型的程序,博途为我们提供了快速明晰程序结构的方式——调用结构。如图9,Main是主程序(OB1块),所有的程序块都在其中调用,每一级又有不同的调用关系,通过逐级展开,我们可以对整个程序的调用关系、从属关系有个细致了解,便于理解程序。
4.6 SCL层级化编程
除了传统的梯形图LAD、流程图FDB编程语言,如其他编程软件,博途也提供了类C或者VB风格的SCL编程语言,类似于施耐德或者GE的ST语言。

但博途软件SCL编程界面令人眼前一亮的不是智能化颜色标识,也不是智能拼写,而是层级化管理,包括相同逻辑结构程序段的收缩和展开,智能缩进。

这些相同逻辑结构的程序段包括相同程序结构、同一程序块和指令,如图10和11,这些程序段是可以折叠“+”和展开“-”的。在相同程序结构中,如for、end_for,循环体中的代码自动缩进。层级化的编程风格便于程序调试。
4.7 可变接口指令
博途软件中的梯形图指令,一大亮点是某些指令的接口是可变的,点击即可增加或减少,同时数据类型自动匹配。

如果12,在程序段中插入加法指令ADD,默认是两个数相加,IN1和IN2为被加数。点击IN2右边的“”,可以扩展被加数个数。

如果四个数相加,像其他PLC品牌的需要使用三次ADD指令,而在博途中只需要一个指令即可实现,如图13所示。

除了加法指令,博途软件还提供其他一些可变接口指令,如图14所列出的MOVE、MIN、MAX指令。虽然这些指令很简单,也可以用其他固定接口的指令代替,但体现了博途软件的人性化,令人印象深刻。
4.8 下载预览
硬件组态,编写好程序后,就可以下载至PLC了。既可以事先编译,也可以直接下载等待自动编译,然后博途会弹出“下载预览”对话框,提示状态和可能的下载操作。

当仅对程序做了修改时,不需要操作就可以直接下载,这种情况下PLC不需要重新启动。当修改了硬件配置,或改变了数据块结构,这时需要二次确定并选择重启PLC才能下载。当编译出错时,会显示错误源,禁止下载。博途软件的下载预览,优化了下载过程,令人眼前一亮。
五、总结
尽管不同品牌PLC的编程软件本质上是类似的,功能也都有一定的相近之处,也存在着个人偏好和熟练程度带来的不同理解甚至偏见,但就我目前了解到的几款常见的PLC编程软件,对比了一些常用功能,发现西门子基于TIA博途软件确实高出同行一截。
博途软件可能存在着版本兼容性小瑕疵或者对电脑配置要求高的问题,但这些并不影响博途软件的确是同时代同领域最先进的工控软件。