串口通信实例018:欧姆龙CP1H和单片机串口通信 点击:724 | 回复:4



关育谋

    
  • [版主]
  • 精华:5帖
  • 求助:21帖
  • 帖子:728帖 | 5626回
  • 年度积分:78
  • 历史总积分:82244
  • 注册:2004年5月28日
发表于:2019-12-25 13:38:47
楼主

串口通信实例018:欧姆龙CP1H和单片机串口通信


一、实例实现目的:

欧姆龙CP1H的8路数字量输入0.00~0.07控制单片机的8路数字量输出DO01~DO08。

二、通信连接:

1、欧姆龙CP1W-CIF11端子含义:

该插件板后的拨码开关2、3、5、6打到ON位置、4打到OFF位置

SDB+:即为RS485发送\接收+信号

SDA-:即为RS485发送\接收-信号

2、单片机串口2通信口端子含义:

3脚:即为RS485发送\接收+信号

8脚:即为RS485发送\接收-信号

3、通信连接:

欧姆龙CP1W-CIF11之SDB+ 接 单片机串口2的3脚;

欧姆龙CP1W-CIF11之SDA- 接 单片机串口2的8脚。

三、欧姆龙CP1H发送通信程序:

1、通信初始化,9600,8,N,1,起始符为0x0002、结束符为0x0003:


2、数字量输入处理,将欧姆龙CP1H的8路数字量输入0.00~0.07共计1个字节转换为ASCII码送入发送缓冲区


3、初始化延时:


4、定时发送:


四、单片机通信程序:

1、单片机通信程序所用的头文件,如下所示:


2、单片机通信程序所用的简化定义,如下所示:


3、单片机通信程序所用的函数定义,如下所示:


4、单片机通信程序所用的变量定义,如下所示:


5、单片机通信程序主函数,如下所示:


6、单片机通信程序延时子函数,如下所示:


7、单片机通信程序ASCII码转16进制子函数,如下所示:


五、通信程序图片提供下载:


正在下载,请等待……
下载附件需0积分!




关育谋

  • [版主]
  • 精华:5帖
  • 求助:21帖
  • 帖子:728帖 | 5626回
  • 年度积分:78
  • 历史总积分:82244
  • 注册:2004年5月28日
发表于:2019-12-25 15:45:57
1楼

程序说明:
主站程序在欧姆龙CP1H实物测试通过;
从站程序在STC12单片机实物测试通过;

最终实现欧姆龙CP1H输入控制单片机输出。

关育谋

  • [版主]
  • 精华:5帖
  • 求助:21帖
  • 帖子:728帖 | 5626回
  • 年度积分:78
  • 历史总积分:82244
  • 注册:2004年5月28日
发表于:2019-12-25 15:46:50
2楼

主站程序说明:程序在欧姆龙CP1H实物测试通过,程序稍加修改即可应用到CP1L和CP1E上面。

关育谋

  • [版主]
  • 精华:5帖
  • 求助:21帖
  • 帖子:728帖 | 5626回
  • 年度积分:78
  • 历史总积分:82244
  • 注册:2004年5月28日
发表于:2019-12-25 15:47:35
3楼

从站程序说明:程序在STC12单片机实物测试通过,程序稍加修改即可应用到STC15\STC8等单片机上。

关育谋

  • [版主]
  • 精华:5帖
  • 求助:21帖
  • 帖子:728帖 | 5626回
  • 年度积分:78
  • 历史总积分:82244
  • 注册:2004年5月28日
发表于:2019-12-25 15:48:19
4楼

最近在持续分享不同品牌PLC、单片机之间自定义协议串口通信,对此程序有疑问可随时跟帖交流。


热门招聘
相关主题

官方公众号

智造工程师