欢迎来到天天文库
浏览记录
ID:43488192
大小:88.33 KB
页数:3页
时间:2019-10-08
《使用S7-200 MODBUS指令实现通讯方法及例程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用S7-200MODBUS指令实现通讯方法及例程MODBUS主站程序:MODBUS从站程序:在从站中的“MBUS_INIT”指令的最下面一个参数“HoldStart”项设置为“&VB1000”,是因为从站和主站通信的数据放在了以VB1000开始的存储区内,其实这个地址不是固定的,但是必须是要通信数据的首地址;当主站要访问从站的前两个字节数据时,在主站“MBUS_MSG”指令的“Addr”参数项数据是40001而不是41001,说明Addr对应从站Holdstart的相对地址而不是从站的绝对地址;还有就是当主站要访问从站的第50、5
2、1字节时,“Addr”参数项数据是40026而不是40050。因为Addr的最小单元是字,从40001开始是第0个字,也就是40001对应PLC发送的数据中从站寄存器地址段数据是0000而不是0001,40002发送的从站寄存器地址是0002,而不是0001了,一次往后推,就可以得到40050对应发送的地址段数据是0098,也就是对应从站中的VB1098和VB1099.其实S7-200MODBUS指令很好用,也很简单,就在主站和从站各自加上个“头”就可以了,但是很多时候回出现问题就是因为没有很好的去把握主站和从站的数据怎么对应,以至
3、于找不准我们要的数据反而怀疑是协议没有设置好,或通信有问题等。建议:MODBUS不是并不是西门子200的专用协议,PPI才是。所以如果只是200和200之间通信的话首选PPI,因为PPI的可靠性更强,编程更简单,只需主站编写读写指令(用向导时又省去了编程的麻烦直接调用向导子程序就行)从站不用编写任何的程序;PPI的另一个优势是通信速率快最高是187.5Kbps,而MODBUS最快是115.2Kbps。我曾做的项目时一主十从,主站没有其他任何程序就只有通信,从站也一样,但是主站控制某一从站输出时要有2~3秒的延时,有的更长,但PPI即
4、使是整套程序编完也感觉不出延时。不过MODBUS的一个优点是每次传输的数据多,最多是120个字240个字节,这个数据量是相当大了,另一个优点是可以和更多的现场仪表实现通信,因为现场仪表中更多的是支持MODBUS协议的,很少支持PPI。虽然PPI每次读写的最大数据是16字节,但是PPI指令向导中可以组态24个读写指令,如果对某个从站一次读写不完还可以再读写一次,只要读写指令不超过24个,其实这个数据量也是不小的。不过在我做的项目中由于从站比较多,每个从站通信的数据量都不少,所以24条肯定是不够用,但是MODBUS的速率又慢,以太网的成
5、本又高,那该怎么办呢?最后我们还是选择了PPI,只不过把从站需要计算转换的数据放到主站来处理,这样从站就相当于一个采集模块了,直接把原始数据上传到主站,这下24条指令就够了。这样做的一个优点就是把所有分散的数据集中到主站作为主站的本地数据来处理了,编程起来很方便,类似于300I/O模块之类的。不管怎么说选择什么样的协议要看具体的情况和要求了。
此文档下载收益归作者所有