首页 上一页 1 2 下一页 尾页

请高手帮我看看程序 点击:1258 | 回复:27



郭zongkui

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-10 15:49:00
楼主
小弟最近编一通讯程序:内容为读一数字式温度采集模块的数据并且计算温度和存储。模块有8个通道。每个通道可以挂8个ds18b20数字式温度传感器。下面是通讯协议。我用的200为226,串口0被定义为自由口。小弟刚开始学习通讯编程,碰到了好多问题,老是连不上。哪位大虾能指点一二阿!比如系统的说一下需要注意哪些参数的设置,时序上面的东西等等,小弟感激不尽!


通讯波特率9600
发命令(5个字节):
第1字节:“#”
第2字节:“0”
第3字节:“0”
第4字节:“0”+CH-1       CH为测试通道号,1、2、……、8
第5字节:0x0D
系统返回数据:
该通道有传感器数:Tn
Tn=(N-5)/4         其中:N是返回总字节数
返回字节定义:
0 1 2 3 4 5 6 7 8    9 10 11 12 13 14 15 16.........            

字节0、1、2、3、4空
字节5、6、7、8(对应A、B、C、D)为第1个温度传感器温度值
字节9、10、11、12(对应A、B、C、D)为第2个温度传感器温度值
… …

温度算法:
正温度(当B and 0xF8 =0xF8):T=[(B and 7)*256+A]*0.0625
负温度(当B and 0xF8 =0x00):T=-[(256-B)*256-A]*0.0625



郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-10 16:02:00
1楼
下面是中断字程序

标准触点

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 835回
  • 年度积分:0
  • 历史总积分:1281
  • 注册:2006年8月05日
发表于:2007-01-10 16:43:00
2楼
ds18b20的通讯方式是标准串口?我看了这个片子的简单介绍,好像是一个单端通讯,有特定的通讯格式,与S7-200的485不同,如果我理解得正确,估计你就是累死也通不上讯的......

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-10 16:54:00
3楼
呵呵,不是了。我找了个现成的模块,准备买下来.这个是plc和模块的通讯程序。最上面的那个通讯协议是供货方提供给我们的,他们已经做好了,通讯口是485,可以直接通讯,产品比较成熟。他们的产品主要和工控机进行通讯,和plc这是第一次。呵呵,谢谢关心阿,可以提点建议么?我是第一次编通讯程序,郁闷死了。

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-01-11 21:26:00
4楼
不明白你说的通讯不成功是没读出数据还是根本就没反应,不过你即然是要读数据,那么就应该设置一下接收控制字SMB87,SM88接收信息开始字符如你的应该设为#.SMB89信息结束字符为0D
还有网络4中的VB9是不是写入16#5就可以了呀??

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-12 08:54:00
5楼
谢谢关注!您说的没错,应该设置smb87,88。昨天刚刚咨询了一下,不过你说的好像有问题。#是我发送的第一个字节内容,而不是接受的第一个字节内容,16#0d倒是我接受信息的最后一个字符。不过我还不知道我需要接受的第一个字符是什么,还需要和供货商要协议。至于vb9,我昨天刚看的例程,不需要传送程序,也就是说发送的时候直接从vb9开始就行,但是不用用mov指令,系统好像直接把字节数写进去。
希望yi yi继续交流。

robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2007-01-12 09:12:00
6楼
不能每次扫描都执行XMT指令,要做一个定时器(如100ms),用定时器上升沿执行XMT,或者做一个定时中断,在中断程序中执行XMT.

松茸

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 98回
  • 年度积分:0
  • 历史总积分:117
  • 注册:2007年1月12日
发表于:2007-01-12 12:29:00
7楼
通讯协议相同吗?

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-12 12:42:00
8楼
谢谢robotH,我改了xmt的触发方式了,用sm0.1或计数器的上升沿,但是现在还是收不到数据。通讯协议就是上面的那个。
哪位大哥能帮我看看程序阿,可以把邮箱留下么?我把我的程序给您发过去,我用step4.0编的,刚开始学习,希望大家不要见怪。谢谢。

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-01-12 19:59:00
9楼
呵呵,我也是西门子的新手,也是才开始学习。对于发送首字节里的发送总字节数,不知道你用的是什么可以自动被系统写入,不过自由口写的USS和MODBUS都是人为先在程序里事先写入的,
接收的首字节应该是总字节数吧,因为发送首字节就是总字节数,其实你可以不用设置SMB88首字符,可以忽略。
希望你能尽快解决你的问题。

yyouquan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 12回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2006年11月18日
发表于:2007-01-13 10:23:00
10楼
T37  T33?

电容

  • 精华:2帖
  • 求助:0帖
  • 帖子:3帖 | 77回
  • 年度积分:0
  • 历史总积分:127
  • 注册:2007年1月08日
发表于:2007-01-13 20:19:00
11楼
我也是西门子的新手,也是才开始学习。请大虾们帮忙吧.

3C爱好者

  • 精华:3帖
  • 求助:0帖
  • 帖子:74帖 | 343回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2007-01-13 20:34:00
12楼
难,我一直搞不懂,是把模块的内容读到???

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-15 08:39:00
13楼
呵呵,yiyi你好。希望继续交流,我正在努力编出来。遇到点麻烦,呵呵,以前没有接触过,所以每走一步走那么难。不过可以和大家一起交流可能就会快点。
对了,我是看的一个程序例程里面没有写总字节数,没有仔细研究,先入为主了。但是我写入字节数后,好像对了,hehe ,我的错。还有smb88的设置,谢谢!

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-16 16:50:00
14楼
有那位大哥作过通讯口,指点指点阿!小弟不胜感激!

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-01-16 20:21:00
15楼
不是说好像对了吗,怎么还没解决呢吗?

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-17 08:25:00
16楼
收到数据了,但是没有收到预期的数据。乱七八糟的。不知道是什么玩艺。所以我想,数据线焊的应该没有什么问题。因为确实收到数据了。但是受的不对,所以程序应该还有问题。哎,这个通讯怎么这么难调阿!郁闷!我把我的程序发到你的邮箱里面,帮我看看阿!帮我出出主意阿!谢谢!!!!!!!

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-17 08:43:00
17楼
我编了一个小程序来试通讯上没有,以及协议的正确与否。各位大虾帮忙看看阿!同学协议就是顶层中的东东。 说明,0.1.2是主程序 3是初始化子程序 4是中断子程序,用来执行rcv的

lesing

  • 精华:1帖
  • 求助:0帖
  • 帖子:76帖 | 3076回
  • 年度积分:0
  • 历史总积分:5728
  • 注册:2005年4月13日
发表于:2007-01-17 09:10:00
18楼
XMT指令发送多少笔数据呀?

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-17 10:27:00
19楼
我的程序里有阿
5个字节阿
1.#
2.0
3.0
4.0
5.16#0D

郭zongkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 153回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2006年3月24日
发表于:2007-01-17 10:30:00
20楼
通讯协议里面也有介绍阿

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页