网站大量收购独家精品文档,联系QQ:2885784924

台达变频器和单片机的通讯介绍(软件部分).doc

台达变频器和单片机的通讯介绍(软件部分).doc

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

台达变频器和单片机通讯介绍(软件部分) 本文摘要: 台达VFD全系列变频器均能够通过通讯进行参数的读写和控制,随着单片机功能的越来越强大,在嵌入控制中的应用更加的广泛。如何实现单片机和变频器之间的通讯是本文的介绍重点。同时本文给出了单片机和变频器通讯的硬件电路图和通讯源程序C51,从而更加方便读者更加深入的了解通讯的内容。 关键词: 变频器 C51 单片机 引言: 在《台达变频器和单片机通讯介绍(硬件部分)》中我们把单片机和变频器通讯的硬件电路搭建起来,并且讲述了单片机通讯结构,也就是单片机的通讯方式。在本文中我们将根据各自的通讯方式和通讯协议来进行编写通讯软件。本文中的软件开发环境使用了KEIL C,编程语言采用了C51. 台达变频器通讯协议介绍 台达变频器通讯字符格式有ASCII和RTU格式。如下图: 对于台达变频器的通讯格式,我们在作工程中或者是DCS系统中,我们只是需要把相关的设置设置正确就可以进行通讯。但在单片机通讯中我们必须更加深入的了解资料格式的含义,熟悉BIT流在整个通讯通道中是如何发送和接受的。这样才能实现真正的报文握手正确。 单片机通讯格式的设定 在本程序中采用了每一帧数据发送10位BIT,波特率为9600的协议。函数 init_serial()主要完成了单片机串行通讯相关寄存器的初始化。 函数ASCII()实现了台达变频器通讯协议转环卫ASCII协议格式功能。 软件调试: 单片机程序通过在KEIL环境下开发编译的,调试界面如下: 通讯效果: 该电路稳定可靠和台达变频器通讯。 通讯源程序 /********************************************************* * 本程序是AT89C52单片机和台达B系列、M系列、L系列、F系列通讯例子。 * 通讯协议ASCII格式,帧格式为“1位起始位、7位数据、奇偶位(或无)、结束位”共10位 * 台达VFD系列变频器一帧的通讯格式:第0位:“:”起始位;第1,2位:站号地址 * 第3,4位:功能号码;第5,6,7,8位:写入的地址;第9,10,11,12位:传输数据; * 第13,14位:校验码;第15,116位:停止0X0D,0X0A. * 该程序通过向2000H地址写入0012H数据来启动变频器;向2000H地址写入0012H数据来停止变频器 * 由P1.0来控制MCU发送数据,P2来控制通讯指示灯。* * 编译环境:KEIL V3.30 * 作者:刘元刚 * 部门:中达电通股份有限公司AMD产品处 * 编写时间:2008.1.8 * 修改时间: * 修改内容: **********************************************************/ #include reg51.h char send[17]={0}; char send1[8]={0x01,0x06,0x01,0x00,0x17,0x70,0x86,0x22}; char count; int temp; bit motor_flag=0; /*********ASCII格式变量定义**********/ char number ; //设备站号 char function ; //功能 char address_h; //地址高 char address_l; //地址低 char data_h ; //数据 char data_l ; //数据 char CRC_H; //校验 char CRC_L; //校验 char send_temp; int sum_temp; /* 函数ASCII()实现了台达变频器通讯协议转换为ASCII协议格式的功能。 */ void ASCII(void); /* init_serial()函数串行通讯初始化函数 实现了:波特率的设定,定时器的选择,发送模式的选择 */ void init_serial(void); //函数ASCII7N2()以数据格式 7,N 2方式发送数据 void ASCII7N2(void); //函数ASCII7O1()以数据格式 7,O 1方式发送数据 void ASCII7O1(void); //函数ASCII7E1()以数据格式 7,E 1方式发送数据 void ASCII7E1(void); main() { init_serial(); /***********VFD系列变频器通讯资料初始化*****/ number=0x01; function=0x06;

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档