MODBUS协议---多机通讯
最近失业,心情不好,相当的不好,为什么为什么一份工作总的做不长......很是郁闷,所以就狂看书,狂吃饭,狂抽烟.......加上上次说要搞个MODBUS协议,这几天刚好有空,所以就把它写了出来,里面还是有点问题,但是总体上问题不大,如果有的话应该是在某些细节上,呵呵 ,同时也希望能得到多多的指点谢谢,如果感觉还行给我顶下!!
说明:
1、
//*************************************************************************************************************
//主题: Modbus协议--多机通讯 ---AT89C52 Serial-m 主机部分
//编者:李 锦 华
//时间:2009-09-01
//QQ : 492031062尽供交流用,无事勿扰 ,谢谢合作
//E-mail:li_jin_hua2006@yahoo.com.cn
//主页:http://hi.baidu.com/kuzhuu
//地点:园林苏州
//注:如对此程序设计有更好的建议,请发送信息到我的E-mail,我会非常感谢的!
//*************************************************************************************************************
2、此程序遵循MODBUS通讯协议,可以实现 功能码06--写单个积存器 和05--写单个线圈的功能,考虑到可以直观的看到效果和实际情况,如写单个积存器只能写到地址0x0001中去且写的数字必须要小于9,因为只用了一个数码管,,但是不防碍你写不同的地址和大于9的数字,只是不能显示出来,如 你可以输入如 02 06 00 01 00 09 则在站号02的数码管中显示9 这个数字
3、因为只用了P32 P33 P34 这三个口来显示功能码05 所以在写线圈的时候,最好不地址不要超过0x0002
,还有根据我的实际情况对05功能做了点修改,就是状态1 由原来的0xff00改为了现在的0x0100,即把ff改为了0x01 后面的00不变,如果是状态0 和以前的Modbus 协议保持一致,如要开站号03的P32口的等,即在主机中按A键后输入:03 05 00 00 01 00
因为本程序写的比较急促,难免有不当之处,请高手指点 谢谢 ,
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_478579.jpg
(原文件名:1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_478580.jpg
(原文件名:2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_478581.jpg
(原文件名:3.jpg)
点击此处下载 ourdev_478582.rar(文件大小:624K) (原文件名:桌面.rar) 顶下,顺便祝楼主早日找到如意工作 我会努力的,相信自己
./emotion/em011.gif 不错!谢谢分享! 同道中人..顶! 好样的。 原理图不错 最近东莞那边的一家叫石龙京瓷光学有限公司打电话给我然后在电话里面面试了,我面试的是嵌入式单片机的工作,不知道有那位对石龙京瓷比较了解的,说说的怎么样!!!因为我现在在苏州,要是不怎么样的话,我去了就没多大的意思,还花掉好几天的时间和盘缠,。。。。。。呵呵 面试成功,一举拿下 石龙京瓷光学有限公司 工资待遇都还可以,准备明天就挥师南下 ./emotion/em017.gif
以后就有更多的时间和大家一起交流单片机技术了 ,也希望有志同道合者与我相拌!!! mark 我在石龙附近,不过不了解京瓷
主程序用了很多while,这习惯很不好,会使程序效率降低并且有很大的机会陷入死循环
没有看到是怎样判断接收到的数据是否正确
没有看到至少3.5字节的超时判断
感觉程序有点乱,可能我水平太次难以看懂 呵呵这个程序写的是比较乱了因为条件有限能力有限加上要在Protues里面仿真还有MODBUS里面的协议还没有体现出来呵呵不过这些都可以自己加上去的 然后51里面的T/C0 T/C1不能同时用而通讯里面比较要有T/C1提供波特所以 有些力不从心
如果有高手的话可以教教我哦 mark 生活总是会有不顺利的时候,楼主加油啊 下载收藏了,楼主加油~~~~~ 谢谢了。 不错的,正在学这个东西呢,谢谢楼主 頂 楼主使用的什么软件仿真? Protues 最好下载经典的6.9版本!! mark 顶 顶啊 mark 顶上 学习学习 了解一下mudbus 学习 学习 mark mark mark mark mark 记号 收藏 楼主加油! 记号 mark. mark! mark mark mark ding mark 学习一下 有时间看看学一下 好,都有同感,楼主努力 楼主加油。 顶,强力顶 顶一个! 一直在尝试多机通讯,结果就是不理想,下来看看楼主的方法. markMODBUS协议之多机通讯 你学的程序确实不太好,效率很低,CRC校验最好使用查表法,另外你没有做至少3.5个字符贞的检测,完全是循环等待,这样浪费了CPU,你应该使用定时器去做这个通信协议。希望对你有帮助 mark……
顶一个… 多谢楼主分享!
页:
[1]