- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MODBUS RTU主从通讯实验
3.实验内容 4.实验预习要求 5.实验原理 5.实验原理 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 6.实验步骤 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 7.实验参考程序 8.思考题 * MagicARM2410教学实验开发平台 广州致远电子有限公司 * 1.实验目的 学会使用ZLG/Modbus RTU软件包开发Modbus主机设备及从机设备。 MODBUS RTU主从通讯实验 硬件: PC机 2台 MagicARM2410教学实验开发平台 2台 RS485通讯连接线 1条 LA1032逻辑分析仪 1套 软件: Windows98/XP/2000操作系统 ADS1.2集成开发环境 μC/OS-II操作系统(V2.52) ZLG/Modbus RTU软件包 2.实验设备 (1) 编与ZLG/Modbus RTU软件包的底层接口函数。 (2) Modbus从机使用蜂鸣器B1模拟为1个线圈量,地址为0。 (3) Modbus主机通过检测KEY1按键控制从机蜂鸣器B1蜂鸣。 (1) 仔细阅读产品配套光盘上该实验例程的目录中ZLG/Modbus RTU使用说明文档。 (2) 仔细阅参考文献[2]关于S3C2410A的UART模块和定时器模块的说明。 本实验中使用到的软件包的API函数及资源占用的情况如下: ZLG/Modbus RTU软件包 API函数:主机/从机初始化函数、主机/从机 服务函数、主机功能代码执行函数。 外设资源占用:UART1和一个GPIO引脚GPE13 ,定 时器2、定时器3和定时器4。 μC/OS-II资源占用:Modbus主机使用3个事件,从 机使用1个事件;Modbus主机/从机服务任 务堆栈推荐使用64。 在从机中,设定从机地址为1,并且使用蜂鸣器B1模拟为1个线圈量,其地址为0,主机通过写线圈操作改变蜂鸣器B1状态。当接收到写线圈地址0的值为1时,蜂鸣器B1 蜂鸣,反之蜂鸣器B1不响。 主机通过中使用1个任务,检测KEY1的状态,当KEY1按下时,发送写地址为0的从机0地址线圈的值为1,当KEY1松开时,发送写地址为0的从机线圈0地址的值为0。 主机部分: (1) 选用ARM Executable Image for DeviceARM2410 (μCOSII)工程模板创建MBMaster工程,并将μC/OS-II相关代码文件、Modbus主机相关文件复制到相关工程目录,然后分别添加MBCommon.c、MB_RTU.c、MBMaster.c、MB_MFunction.c和OSFUNfile.c到工程。 (2) 打开cofig.h文件,添加ZLG/Modbus主机相关的头文件MBMaster.h,由于在μC/OS-II操作系统中使用,所以还需要定义UCOSII宏,如程序清单 1.1所示。? 程序清单 1.1 添加头文件 /********************************** ** ZLG/Modbus TRU相关头文件与配置 ***********************************/ #define UCOSII // 在uC/OS-II下使用本必须定义该宏 #include MBMaster.h // Modbus主机栈头文件 void IniUART1(uint32 bps); // Modbus使用的串行口 void UART1_Exception(void); // Modbus使用串行口的中断服务函数 void TimersInit(void); // Modbus使用定时器初始化 void T15_Exception(void); // Modbus T15定时器中断服务函数 void T35_Exception(void); // Modbus T35定时器中断服务函数 void T10ms_Exception(void); // Modbus T10MS定时器中断服务函数 (3) 编写ZLG/Modbus RTU主机软件包接口文件SYSHAL.C。主要是编写:void Se
文档评论(0)