51单片机与三菱PLC通讯实例.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机与三菱PLC通讯实例

51单片机与三菱PLC无协议通讯成功 我用了两个晚上的时间查阅一些资料,利用三菱PLC的扩展RS485通讯板与其51单片机连接通讯,可写PLC任意的地址。长度可达1000米,看见网上写的都很烦且对三菱和单片机不是很熟的朋友来说有一定的阅读难度,今天将它与大家分享。希望在此基础上大家能扩展出自己想要的功能,过些时间有空我在写个半双工的程序。 硬件部分: 我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工通讯,须将P3.0口到下载程序的RS232芯片的线断开可用一个跳线,用RS485的时候断开RS232,用RS232的时候插上跳线帽。硬件连接如图 PLC程序: 通讯我用单片机做主机(只发送指令),PLC做从机(只接收指令),单工单向,以便初学着掌握。 格式:1位启始,8位数据,一位停止。 所以PLC寄存器D8120:0C81. plc程序很简单不懂的可以看下三菱PLC的通讯手册。如下图: 三:单片机程序: #includereg52.h /*单片机的头文件*/ unsigned char code tab[]={0x17,0xff};/*PLC输出的Y点数,PLC输出Y灯0125678亮*/ sbit led=P1^1; /*将RS485置为发送数据模式*/ unsigned char i; void init() { SCON=0x50; /*串口中断开*/ TMOD=0x20; /*定时器设置*/ TH1=0xfd; /*定时时间的高位*/ TL1=0xfd; /*定时时间的低位,速度为9600BPS*/ TR1=1; /*定时器开*/ EA=1; /*开总中断*/ TI=0; /*复位串口中断*/ led=1; /*将RS485置为发送数据模式*/ } void main() { init(); /*调用子程序*/ for(i=0;i2;i++) { SBUF=tab[i]; /*将数据发送到串口*/ while(!TI); /*等待串口数据发送结束*/ TI=0; /*复位串口中断*/ } } 四:注意点。 1:RS485的线不能接反,否则数据将不正确。 2:单片机的晶振要选择11.0592MHZ,否则PLC接收到数据也不正确。 3:RS485芯片的电源不能接反,否则要烧坏芯片。 今天要去山东调试机器,现在正在高铁上,刚好有空把这篇心得写好,有错误的地方还请大家指正,也希望有共同爱好的一起交流心得。 QQ 注明时工控交友 电话 姓名:黄辉 2011年12月17日 Saturday

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档