您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页对编写单片机与欧姆龙PLC串口通信遇到问题做一些小结

对编写单片机与欧姆龙PLC串口通信遇到问题做一些小结

来源:五一七教育网


对编写单片机与欧姆龙PLC串口通信遇到问题做一些小结

2011-07-15 11:28:31| 分类: study-eletrical | 标签: |字号大中小 订阅

1,程序发的数据包太多了,并且数据包的定义是RAM的,很容易造成单片机的RAM不够,因为单片机默认的RAM是128个字节,不过可以扩展高的128个字节,范围在80H -FFH,

定义是这样定义的,char idata XX[]:

如果这样不够的话就只能在想办法来解决这个问题,找一些规律啊,或是改成查表的形式,

定义成code 类型:uchar code XX[]:

2.程序中的要对一些数据进行掉电保存,我这里用到了单片机内部自带的EEROM,在编写

程序中也遇到一些问题,只能保存一个数据,

后面:后面调了一下程序:发现一个问题,就是每个对数据进行更新的话,都要对你定义

的所以地址的内容进行,然后在写入,单对某个地址的话就是不行,:

//=======================对保存的四个数据位进行清除扇区

Sector_Erase(add1);

Sector_Erase(add2);

Sector_Erase(add3);

Sector_Erase(add4);

_nop_();_nop_();_nop_(); //===小延时一下

//=====================写入要保存的数据位,也是一次要保存好4个数据,

不能单一进行了,不然就会只能保存一个数据

Byte_Program(add1,key_count);

Byte_Program(add2,(char)CLAMP_flag);

Byte_Program(add3,(char)CONV_flag);

Byte_Program(add4,(char)MODE_flag);

3,我这里的PLC用的通信协议是:9600BPS N 7 2

也就是:一个起启位,7个数据位,两个停止位,无校验的形式;

这个我在单片机中用的通信协议是:9600BPS N 8 1

也就是:一个起启位,8个数据位,一个停止位,无校验的形式;

这些两个协议就不对了,哪就要去兼容了,根据数据的原理,我们只在发的数据的最高位

是1(也就是一个停止位)就可以兼容这种PLC的通信协议的形式了:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务