您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子200PLC和omron温控器modbus通讯程序
西门子200PLC和omron温控器modbus通讯———江湖小色随着智能温控仪表的普及以及工业现场控制的需要,以温控器为代表的智能仪表和PLC等上位机的通讯在过程实施中越来越多的被使用。今天闲来无事,给新手以及正在做类似项目的朋友做了个简单的教程紧供参考(高手就不必看了)。由于时间有限,MODBUS通讯的格式等就不再这里赘述了,网上多的是随便down一个看吧。一:欲做MODBUS通讯,首先要加载MODBUS库如下图1.库上点右键(图1)-----添加删除库(图2)-----添加(A)(找到MODBUS库文件的地址就好了)库加载成功后如图3.你也可以向我一样直接下载西门子的库文件(Inst_Library_V11)安装,在哪儿找就不用说了吧。图1图2图3二:库加载完了,接着就是初始化MODBUS了。1.以端口0为例,打开加载的端口0的modbus库。2.加载程序到网络,并如图设置参数(baud=通讯比特率parity=端口的模式0为PPI通讯1为modbus通讯timeout=通讯超时时间done=指令执行完成error=错误代码)。本例中通讯的比特率设定为38400(高的比特率可以获得高的通讯效率但是如果环境干扰比较大就要设的低一些不易出错)。3.modbus通讯指令同时紧有一条可以执行,所以要写如下图的一个小程序。目的是让4.中的程序交替执行。程序很简单就不多解释了,如果有什么不懂可以发邮件于我yifan.163@163.COM。4.下面两条指令的功能就是监控温控器的设定值和当前值。(其中slave是温控器的站号RW可以为0(读)也可以为1(写)决定这条指令是读参数还是写参数addr就是要读的地址喽,这里要说一下,omron的地址是0000开始而且是16进制的ASCII码,PLC读地址时要把地址转换为10进制,而且要在原来的地址上加1,然后加40000.例如要读温控器的当前值,他的地址是0404即十进制的1028那么PLC读此参数的地址是40000+1028+1=41029。Count为要读的范围和参数的类型有关。Dataptr为读取的的报文,报文中包含了参数的数据,例如&vb200那么参数的数据保存在VB202和VB203中,vb202为高位,vb203为低位。想知道为什么就要看modbus的详细资料了。5.上图读到的参数就保存在下图中6.程序到此为止,接下来就是设置温控器参数了,但是到目前为止程序还是不可用的,此时编译会报错,因为没有分配地址。在程序上点右键,然后点库储存区,分配库储存区。7.设置温控器参数。这里就不赘述了,下载个手册看看。把波特率、地址和允许通讯设置了,然后把通讯线连上即可。下班了就说到这里了,下面把温控器modbus的通讯地址贴到下面,希望对有需要的朋友能有点帮助。有什么问题欢迎发邮件给我。
本文标题:西门子200PLC和omron温控器modbus通讯程序
链接地址:https://www.777doc.com/doc-3752312 .html