西门子plc发数据给pc的显示问题 点击:1670 | 回复:6



二子

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:218帖 | 191回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2004年4月08日
发表于:2011-05-31 18:15:29
楼主
我在西门子plc。315-2PN/DP, 我的pc是用vb写的,在pc上可以看到收到的原始数据,我发给plc是54,上面显示6,发65,显示A,但是我想显示54和65,该怎样办?谢谢



yanze45

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 59回
  • 年度积分:5
  • 历史总积分:629
  • 注册:2004年9月01日
发表于:2011-05-31 19:00:07
1楼

你这个数据类型是INT,还是DINT。siemens 的数据分高低位的,注意这个方面即可。

 

toger004

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2008年9月11日
发表于:2011-05-31 19:55:13
2楼
好像从串口上读的是字符串类型的数据,VB中又将它转成了ASCII码。C h r(54)=6. A s c("6")=54.你这个VB串口通讯自己编写的吗,能不能发给我学习学习,谢谢啦 xiaozhou__1984@163.com

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2011-05-31 20:04:46
3楼
发给plc是54,上面显示6, 上面是指的?PC监控画面中还是?

该放手时就放手

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 138回
  • 年度积分:0
  • 历史总积分:660
  • 注册:2010年4月15日
发表于:2011-05-31 20:50:09
4楼
这也要看使用什么样的协议,通常是发送ASC码,比如我要发送1,实际上发送的是1的ASC码,也就是30H,一个ASC码刚好占用通讯中一帧数据的7位数据位。所以一个字符是一帧数据。MODBUS RTU 发送的直接是数据,MODBUS ASC应该发送的ASC码,我没用过,这个呢只要看一下通讯协议就可以了,我当初写个VB与三菱PLC通讯的程序时,就是看它的通讯协议,三菱的通讯协议我用过两个,一个是编程口的协议,好像不是开放的,另外一个是自由协议,就是ASC的。

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-05-31 22:17:19
5楼

引用云锋 的回复内容:发给plc是54,上面显示6, 上面是指的?PC监控画面中还是?




说的显示 应该是 上位机画面吧,应该是把 值当ASCII 码显示啦! 做个ASCII ->整数转换试试!

二子

  • 精华:4帖
  • 求助:0帖
  • 帖子:218帖 | 191回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2004年4月08日
发表于:2011-06-10 13:33:04
6楼
电脑上直接显示的原始数据就是6或者A, 没有经过VB 处理过的

热门招聘
相关主题

官方公众号

智造工程师