关于调试工具的一些想法

在工业产品中,虽然USB接口越来越流行,但是固执的工业产品中标准的串行通讯总线:RS-485, RS-232还是最为流行的。原因之一就是相对于USB接口来说,其实现起来更加简单,对调试和现场安装的要求也相对简单一些。大量简单的MCU都集成了标准的串口通讯,只需要硬件接出来即可。而软件开发上,对调试等速度要求不高的功能,程序开发也相对简单很多。而简单的RS-485总线甚至可以在一定的范围内成为标准的工业网络使用,成为了小型自动化系统的物理标准。

对于市面上流行的各种设备,各个设备生产厂家都开发了相对成熟的调试工具。但随着新产品,新总线,新协议的不断增加,自动化系统的网络通讯变得越来越复杂,这些调试配置工具也变得越来越复杂,对使用者的要求,电脑硬件的要求也越来越高。很多简单的调试工作上,工程师反而不得不去远离这些庞大的调试工具,越来越依赖人工直接调试。

简单产品调试所需要的功能是什么呢?

  • 支持RS-485 /RS-232通讯即可
  • 对调试电脑的硬件的要求不要太高
  • 突出核心功能:设备基本调试,参数的上载和下载
  • 使用方便(这个要求是最模糊,却需要得到解决的)

怎么去满足这些要求呢?我自己其实来完全没有此类软件的开发经验(都多少年没有写过代码了,呵呵),却面对了不少这类的客户和大量此类产品。以我自己的想法,满足这些要求的产品,应该可以这样设想吧:

  • 单个程序,无须安装,配置和存储全部都在一个文件夹内,可以移动使用。
  • 硬件接口只支持RS-485/RS-232接口,其他的接口暂时不用考虑。
  • 程序针对WINDOWS系统,但最好能考虑可移植到linux等系统,毕竟工业系统中的各种情况还真的说不清。
  • 数据存储,坚决使用SQLite来进行存储。基本配置文件可以用文本文件,其他的数据全部都在SQLite中保存。
  • 用户界面要简单,就几个页面,但却要突出功能。不华丽,却足够显示和输入足够的信息。对设备的参数等信息有在线的帮助。
  • 最好能允许使用手机等设备来访问。如何实现呢?——Web方式!就是说程序的用户端是网页,而不是wxWindows等特定的实现。这样如果工作环境中有Wifi,在一台电脑上安装这个软件,调试工程师就可以通过手机访问它,来遥控这个设备。无须在设备和电脑之间跑来跑去。

所以,整个程序的设想就是一个程序即是一个web服务器,也是串口通讯程序,也是工控协议处理单元,也是数据库服务器,也是具体设备调试应用处理者。

是不是破费周折啊,把最落后的串口通讯,折腾成能用AJAX来实现的网页,让手机能通过WIFI调试近在咫尺的那些工业设备。但这样是不是就像是给了那些古董的机器一个内置Web服务器的感觉啊!一下子,新时代的大门为各样的机器敞开了大门。

怎么实现呢?其实来现在还真的没有怎么想过。现总结一些知道的资源吧:

  • 实现语言为Python(为什么?看看下面这些内置功能就知道了)
  • 服务器实现为Python标准库内置的Web服务器,或者pyWeb(如果网页复杂)
  • 串口部分采用pySerial作为接口,这里有一个参考
  • 由于Python的二进制处理比较弱,还要采用struct来帮忙。这里一个参考文章
  • 数据库就是标准的pySqlite库了
  • 由于使用Python,多平台,线程等问题就不用太多考虑了。
  • 网页上的Javascript通过AJAX来做数据的实时刷新
  • 调试和编程简单点,但是制作安装包估计麻烦不少。