回复:VB上位机与s7-200 cpu226自由口通讯以设置PLC工作参数的问题

nemokang

  • 帖子

    18
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2011-01-12

普通 普通 如何晋级?

发布于 2011-08-01 11:28:27

10楼

quote:以下是引用Zaxife在2011-07-30 00:29:50的发言:
不知道你通讯用的什么协议,也就不清楚你的数据格式,无从回答你的问题。
如果是modbusRTU协议的话:
1 协议规定保持寄存器是32位的Word类型数据,不是VB,而是VW。如果你定义了MBUS_INIT的HoldStart是&VB100的话,那么6个保持寄存器连续排列就是VW100、VW102、VW104、VW106、VW108、VW110,你用16功能码写的6个数据就是按这个顺序保持到上述6个字内存中,而不是字内存VB。

2 结束符?用库不是比较简单么?反正266大把内存可用。

3 如果用VB分开写保持寄存器,只要用写单个寄存器功能码06就可以了,不要用16功能码多写。
比如往12号地址的PLC写你说的分割数据用到6次写指令:
0C 06 00 0A 00 0A 28 D2
0C 06 00 0F 00 14 B8 DB
0C 06 00 14 00 1E 48 DB
0C 06 00 19 00 28 59 0E
0C 06 00 1E 00 32 69 04
0C 06 00 23 00 3C 79 0C

....既然是自己写的程序,何必分隔开来?


非常感谢你的细心回答.
其实我的问题没那么复杂,可能你们实战的比较多,所以会考虑的更深入 更专业.我是用的s7-200自由口通讯模式,系统也是简单的单机PC与单个s7-200 CPU226 CN,并不涉及一主多从.我的目的就是想在PC上做个interface,能按照不同的需求设置PLC里面的变量参数,
例如:PLC中我的定时器设定值是个变量(VW120),这就需要在PC上设置参数并能传到VW120中。
因为有不同的变量,我的VB程序一次字符串传送的话,在PLC接收方就有一个识别分隔的问题了。
当然RCV和XTM,第一VB位表示的是字节数据量--这点我知道的。
我目前的状况是:PC上的VB程序和PLC里的RCV/XTM通讯没问题,但PC上传过来的数据没有送到我想要的地址。如:我想要输入十进制500或者50,到PLC的VW120字地址中,那么在PLC程序里 我需要进行怎样的处理呢?

ps:唉,不知道我有没说清楚,感觉搞的好乱。个人感慨想起来很顺利,实际做起来就会发现各种问题,郁闷。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33277条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。