发表于:2002-12-04 19:42:00
54楼
S7-200的自由口通讯比较麻烦,需要自定协议。如果你是做上位机的,首先需要先和PLC的编程人员商量好通讯协议,然后才可以编程。
一、确认通讯协议
通讯帧的格式可以参照这个:[起始字符][站号][命令][起始地址][字节数][校验码][结束符]。
例如:我们需要读取VB100~VB110的数据,仿照OMRON的Hostlink通讯协议(我觉得这个协议比较好用),通过ASCII方式进行通讯,那么命令格式可以是这样的:@00RV0100000540*[enter]。也就是读取V存储区从地址100开始连续5个字的内容。
其中“@”字符代表命令的起始符,“00”代表站点号为0,“RV”就是读取V存储区的命令,0100就是起始地址,0005代表数据长度为5个字,40是FCS校验码,是FCS前面所有字符的ASCII码逐位异或,并转换为16进制的结果。*和Enter就是命令结束符,一个*加一个回车符。。查询其他数据区以及写数据的命令格式在此我就不再详述了,都差不多(详细可以参考OMRON的编程手册)。
二、计算机端的数据解码。
以下以Delphi下的SPComm控件为例(VB下的MSComm应该类似):当串口接收到数据时,RS232的控件会产生一个OnReceiveData事件,并返回缓冲区的指针以及数据长度。
1.检测数据帧是否以“@”开始的,站点号是否正确。
2.计算一下FCS,是否和数据帧中的FCS一样。
3.根据数据帧中的命令,取出数据帧中的数据,并对数据进行解码。
三、其他
对于趋势图及棒图的生成,可以使用现成的控件,当然也可以自己DIY。