No.80703 作者:wqlcd_911 邮件:wqlcd_911@163.com ID:146149 登陆:60次 QQ:800005447 文章数:60篇 最后登陆IP:14.29.89.99 最后登陆:2014/4/24 11:08:02 注册:2009/12/30 11:46:04 财富:433 发帖时间:2012/8/2 15:53:20 发贴者IP:113.109.177.123 标题:wqlcd_911:单片机与工业触摸屏人机界面通讯最简单方法 摘要:No.80703单片机与工业触摸屏人机界面通讯最简单方法 很多时候,工业控制或者产品设计方面受到PLC这种功能确定,扩展麻烦,成本昂贵等方面的制约因素,需要独立开发一种特殊功能,但是又需要连接触摸屏通讯,工程师在这个方面往往需要花费很大功夫,现在我要帮大家解决的问题就是 单片机与人机界面触摸屏通讯的最简单,最有效的 2种方法,其实就是分为2种通讯协议,即工业标准的 Modbus RTU协议和 工程师自己定义的 自由协议。  本实例采用广州市微嵌计算机科技有限公司(公司网站: )的人机界面作为参考,因为公司提供一系列的技术支持和公布单片机源代码,加上公司的人机界面支持自由协议等等先天优势,开发工程方便有效。 方案比较: 方案一 modbus—rtu协议: 优点:工业标准通讯协议,具有通用性,,传输数据量大 缺点:需要时间去了解协议的格式和以及按照规定编写通讯程序(我们提供MODBUS-RTU源代码,客户直接移植就可以,不必费心) 方案二 自由协议: 优点:数据格式客户自己定义,灵活多变,定制性强,可以模拟任何已知报文的通讯协议 缺点:传输数据量不大,通用性不强,移植不方便 工程师可以根据以上两种通讯协议的优缺点来选择理想的方案; 实现方法:首先下载公司的人机界面组态软件(下载地址 ) 方案一: 1. 工程属性选用MODBUS-RTU协议; 2. 先了解MODBUS-RTU协议,基本的01 03 05 06 16 的功能码需要了解,其他可以不去深究;提供相关的资料 3. 使用我们提供的MODBUS-RTU协议(C语言)开发源代码,把主要的01 03 05 06 16 函数移植到单片机通讯上,大大节省了开发时间;  方案二: 1. 工程属性选用FreeProtocol协议;  3. 打开控制令编辑器(设定—> 宏指令—> 宏指令编辑器)或者直接按F8; 4. 新增宏指令,在宏指令里面使用到Output()、Input()、SetWordData()、GetWordData()这四个函数;注:可以参考附一 5. Output()函数,把设定好的字符串发送到相应的串口输出;Input()函数,从设定好的串口读取需要的字符串; 6. 采集显示: SetWordData()函数,把Input()函数接收回来的数据,发送给HIM用户自定义寄存器里,然后在显示控件里填上已经有数据的HIM寄存器,即可显示单片机采集上来的数据; 7. 改写发送: 在显示控件了把需要改写的数据绑定HIM寄存器,使用GetWordData()获得修改后的数据,通过output()发送把数据发送到单片机; Output(); 【描述】 第一个参数channel表示通道,如果通道为com1,则channel=1;如果通道为com2,则channel=2,数据类型为int。 ......
>>返回讨论的主题
|