比特138

 找回密码
 立即注册
搜索
查看: 283|回复: 0

组态王与51单片机(STC15F2K60S2)通信示例源码

[复制链接]

221

主题

221

帖子

12

积分

新手上路

Rank: 1

金币
12
发表于 2019-12-25 23:51:55 | 显示全部楼层 |阅读模式
本帖最后由 walker 于 2019-12-26 14:31 编辑

程序思路:组态王向51单片机通讯总共就两条命令读命令和写命令,读命令共分三条,字节读和双字和浮点读三条命令,写命令也分三条,字节读和双字和浮点读三条命令,读时的三条命令的数据长度都一样都是14个ASSIC码,而且单片机回传的数据分别是10个ASSIC码和12个ASSIC码和16个ASSIC码

                    40  30 31 30 32 30 30 30 31  0D                                 数据是1个字节2个ASSIC码

                   [字头-地-址-字节--数-据-异或值-字尾]

                    40  30 31 30 32 30 30 30 31 30--30  0D                         数据是2个字节4个ASSIC码

                   [字头-地-址-字节--数-------据-异或值-字尾]

                    40  30 31 30 32 30 30 30 30 30-30-30-30----31-30--0D         数据是4个字节8个ASSIC码

                   [字头-地-址-字节--数-------------------据---异或值-字尾]

写时的命令组态王分别发送字节16个ASSIC到单片机,双字节是18个ASSIC和浮点22个2ASSIC码
单片机只需回答正确和不正确的俩条命令 40 30 31 23 23 30 31 0D
然后再把数据处理就可以了如果不理解请仔细阅读组态王与单片劫ASSIC通讯手册。
与组态王通讯时请注意选择的单片机晶震频率和波特率及效验否则无法通讯成功

          本次测试组态王只支持19200波特率,再高的波特率没有成功,
          不知道是何原因难道组态的原因吗?
        功能描述:                        接收组态王的数据
(组态王发送来的数据有读都是14个ASSIC,
                       bite写16个ASSIC,
                       word写18个ASSIC,
                       FLOAT写22个ASSIC,

单片机回传----读单字节时正确回传10个个ASSIC,读双字节时正确回传12个个ASSIC,读浮点时正确回传16个个ASSIC,
                读时不正确回传8个个ASSIC
单片机回传----写时正确回传  8个个ASSIC,
                写时不正确回传8个个ASSIC  

代码有详细注释
1.png

组态王上位机界面
测试.jpg
组态王与单片机通讯协议.doc (176.5 KB, 售价: 5 金币)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|比特138 |网站地图

GMT+8, 2020-9-28 04:29 , Processed in 0.026666 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表