您现在所在的是:

西门子SIEMENS

回帖:2个,阅读:2529 [上一页] [1] [下一页]
981
w_wei1111
文章数:10
年度积分:50
历史总积分:981
注册时间:2007/9/9
发站内信
发表于:2007/11/2 13:24:00
#0楼
大家好,我打算采用MUDBUS协议来实现PLC与DSP的通信,由于一些原因我必须把PLC作为主站,在STEP 7 MicroWIN V4.0 SP4中我调用了MUDBUS RTU主站指令库。我想请教大家的是,当PLC要读DSP的寄存器中的值时,DSP回传数据帧后,这些数据会保存在PLC的寄存器中,那么如果是调用MUDBUS RTU主站指令库,PLC是不是自动的完成对数据帧的解包,也就是直接将要读取的数据放在指定的寄存器中?



我要做的通信过程是这样的:
DSP传给PLC一些故障的信息和数据,PLC把这些数据放到指定的寄存器中,这些指定的寄存器与触摸屏的一些寄存器一一对应,然后在屏上显示

由于我使用了MODBUS协议,我想用定义好的功能码03和06以及16
这个保持寄存器我想能不能把DSP中的寄存器做个映射,比如DSP的地址0x0001对应的是MODBUS地址的40001,那么我要读0x0001的值,我访问40001就可以了

因此我定的协议是这样的:
PLC发的数据格式依次为 站地址、功能码、要读从站的首地址(即40001,而不是0x0001)、数据个数、校验码
而DSP给我回传的数据格式依次是:站地址、数据个数、数据、校验码

我的想法是这样的 :我们先固定好什么样的故障信息放入指定的寄存器 我要读故障信息 直接读这些地址就可以了 把这些信息读回我PLC的寄存器 由于已经做了规定 我自然知道这些数据是什么样的故障 那么PLC这方就不用做判断了
我再把这些数据传到与触摸屏对应的寄存器中 ,供触摸屏读取来显示

整个通信过程就是这样的了 ,因为从来没做过,网上也找不到类似的资料,大家帮忙看看能不能实现啊?
981
w_wei1111
文章数:10
年度积分:50
历史总积分:981
注册时间:2007/9/9
发站内信
发表于:2007/11/2 13:26:00
#1楼
补充一下问题:
我用的PLC型号是S7-2OOCN,CPU是226
我下载了西门子网站上的MicronPower_2007的一个文档,上面介绍了PLC做主站的MODBUS通信,西门子开发了MODBUS主站指令库,可以通过调用库指令来完成通信.

但是我发现这个指令库似乎是为两台PLC之间的MODBUS通信而使用的,一台做主站,另一台做从站.

我的疑问是这个指令库能不能在PLC和DSP之间的通信中使用?如果我把DSP做从站,那么指令库中要求寻址的MODBUS地址是不是要映射成DSP的寄存器地址呢?

举个例子,我要读取DSP中寄存器0x0001--0x0005的数据,我把0x0001--0x0005的地址映射成MODBUS地址40001--40005,PLC调用MODBUS指令库发出指令要求读取40001--40005的数据,那么是否就会读到DSP的数据呢??

再有就是这个库指令是不是只能针对MODBUS定好的那几个功能码啊?比如01(读线圈),16(写多个保持寄存器),由于MODBUS的校验要CRC校验,如果我自己定义功能码,那么西门子开发的MODBUS主站的指令库还能不能用呢?我主要不想编写CRC校验的程序,如果用库指令的话,好象这个是自动生成校验码的.
981
w_wei1111
文章数:10
年度积分:50
历史总积分:981
注册时间:2007/9/9
发站内信
发表于:2007/11/5 18:49:00
#2楼
问题基本解决

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002