早在很多年前(大概是1997年吧),我还在南京做电力自动化的时候,就碰到各种各样的协议,那时都要拿PL/M96实现(我们是基于MCS96单片机的系统),而且当时96的程序数据空间都很受限制,而且调试极不方便。那时就想如果有个简单的可编程的协议转换器该有多好。实际后来我还真的开发了一个80188的板子,512K的ROM,512K的RAM,用TC编程,带4个串口,专门用于处理协议。
在2007年做环保数据采集,用单片机做的,要处理各种各样的协议,虽然每个协议都不是很麻烦,但是都要实现啊。一个协议总要花上1天半天的时间。关键是要自己写,好麻烦。把代码给客户吧,有不是很放心,而且C语言编程,客户也未必搞得定。在这种应用中我总结了很多协议的要求,拟出了一个简单的协议框架性的东西,也看到了大部分简单协议的特点,无外乎主从协议和主动发送的协议。
其实早在2006年的时候,我们就做了一个协议转换产品,型号叫SCM-2,是基于MSP430F1611单片机的,原理图和源代码都可以提供给客户的。但是单片机的C语言程序员,特别是优秀的,还是很难找的。关键是厂商的利益不好保证,原理图有了,源代码有了,批量大的时候谁都可以找人布个板子,自己生产。厂商没有利润就很难改进设计,提供更好的服务。。。。。
我们有很多客户都和我们提出过网关产品的要求,比如DL645转MODBUS的,HART转MODBUS的,等等。而且国内非标协议的东西特别多,就是MODBUS协议的实现也是千差万别的。各个程序员都想按照自己的想法去实现自己设计产品的协议,而且我还碰到过协议本身有问题,不完备的情况。
国外的厂商提供和很多标准协议转换的产品,但是对于国内众多的非标准协议,也让老外很挠头,而且有时候在系统整合的时候,你能碰到100多台设备,20多种协议的情况,不管是国外哪个厂商都不愿意去开发一个协议只使用1次或者几次。这样的工作只能由系统集成商来完成。
能不能提供一个可以用户编程,又能保护厂商利益的东西呢?开始我们的思路是做一种规约描述语言,然后转换为C代码。后来我们在开发可编程控制器的时候,接触了IEC61131-3标准,这是一个PLC OPEN的标准,其客户群体相对较大,而且有专门的教材和培训,于是我们把技术路线走向了IEC61131-3标准。
在2009年,腾控科技开始T9系列PLC研发之前,TG900的硬件已经完成了,当时主要是实现MODBUS /MODBUS TCP的网关和串口服务器的功能。腾控PLC到了2010年底,通信功能已经非常强大,我看到我们的技术支持工程师可以拿我们的PLC实现非常复杂的协议,让我都有点惊叹。我们PLC通信编程能力如此的强大,而且我们专门安排了1个工程师实现了IEC870-5-104协议。这时,刚好有客户需要一个可编程的IEC870-5-104的网关,于是我们下决心,开发了这个产品,在TG900后面加一个后缀P,型号定义为TG900P。自己盼望已久的东西实现了。
TG900P支持IEC61131-3标准,具有32M的SDRAM和4M的NOR FLASH,其设计目标是支持简单的串口协议的(RS232/RS485),将来支持CAN接口的协议以及网口的协议。理论上讲TG900P几乎能实现所有的通信协议,但是其速度和存储空间在实现特别复杂的协议时,都可能是问题。再有就是有严格串口定时的场合可能会有些困难,因为我们的串口仅支持3.5倍字符时间的超时事件,其操作系统的调度也需要时间。
TG900系列有2个型号TG900和TG900P。其差别是TG900支持串口透传(也就是串口服务器),MODBUS 桥,MODBUS TCP / MODBUS的桥功能。也就是可以用串口作为MODBUS RTU的主设备,支持128条命令,把从设备的数据读取到内存,供其他串口和网口通过MODBUS RTU协议或者MODBU TCP协议访问。
而TG900P屏蔽的串口透传和MODBUS 桥功能,用户可以通过MODBUS 功能块读取MODBUS设备的数据。对于用户的其他协议,需要用户通过自由口编程自行实现,比如DL/T645等。自由口编程给用户提供了3个基本功能块,PORT_OPEN, PORT_READ,PORT_WRITE,分别用于打开串口,读串口和写串口。这样的功能块对于有计算机基础知识的人来说非常简单。数据的处理和数据的解析,需要用户用ST语言编写,ST语言功能非常强大,和PASCAL语言类似。
产品照片

其软件架构如下图:

串口驱动支持的读取支持两种的返回,一种是读取的长度等于给定的长度,一种是2个字符间的时间间隔超过3.5倍的字符时间。CAN协议处理在后续的版本中实现。
下图是TG900作为串口透传的例子,TG900可以相当于一个3串口的串口服务器使用。串口服务器的功能和MODBUS 桥的功能可以混合使用,也就是1个串口可以作为串口服务器使用,其他串口可以作为MODBUS桥使用。
TG900P 应用1:串口透传

下图是TG900作为MODBUS 桥使用的例子。
2台MODBUS RTU主设备访问一个MODBUS总线

多台计算机通过网络访问多条MODBUS总线

TG900P实现MODBUS, MODBUS TCP协议到其他协议的转换,这时要用到自由口编程方式,如图上的功能块PORT_OPEN,PORT_READ,PORT_WRITE
MODBUS TCP/非标协议网桥

下图是TG900P实现IEC870-5-104协议到其他协议转换的例子。
IEC870-5-104/非标协议网桥

也可以实现MODBUS 到 IEC870-5-104协议的转换,这时要用到MODBUS的功能块进行编程
IEC870-5-104/MODBUS RTU网桥

因为TG900P本身可以作为PLC使用,它相当于去除了I/O的PLC,通过远程的I/O,可以构成微型的控制系统如下图
微型控制系统

下图是一个实际应用的例子,客户用TG900P和我们公司的STC-101,STC-102模块实现的周界报警的例子。STC-101是16路开关量输入模块,接现场的红外传感器,STC-102是16路开关量输出模块,接监控中心报警装置,TG900起到通信和逻辑运算逻辑判断的功能。该系统应用在大港油田的某个项目。
实际应用举例:周界报警系统

用户用12台STC101,分作12个报警组,每个报警组最多16个报警量。每个报警组报警时,STC-102的1路继电器吸和,带动报警器。
系统最大可以到32个报警组,响应时间<1S
下图是一个想象图,应用无线传感器和无线RTU,构成的一个完全无线的控制系统。图中的可编程控制中心就是拿TG900P+无线模块构成。其中的无线模块支持多跳的功能。TG900P的网口通过网络和上位机进行通信,构成控制系统。
无线控制系统

评论 0
正在获取数据......