触摸屏和单片机通讯要么选modbus。要么用单片机防某款你触摸屏支持的PLC的读写协议触摸屏和单片机通讯要么选modbus。实现触摸屏与单片机的通信,主要是解决通信协议的问题。使用开放的Modbus通信协议,以触摸屏作主站,单片机作从站。串口调试助手可以通过模拟Modbus协议,实现和Modbus设备进行通讯。
在串口调试助手中设置目标串口号、波特率等相关参数。在Modbus通信协议中,51是指功能码为51的指令。该指令用于读取输入寄存器的值。输入寄存器是Modbus设备中用于存储输入数据的寄存器。modbus的基本部分有现成的,自己写也不难,一般03和06指令用的最多,基本就够了。比较难的是数据分包检测,这块得根据你的mcu具体来做。
这种通信采用的是主机轮询、从机应答式的通讯方式,从机通过地址来判断主机的通信对象是否为自己,所以不用判断起始位。你说的这个功能叫协议转换,你可以做一个专用的协议转换接口电路板,将不同公司的仪表的串口数据协议转成ModbusTCP协议。普通单片机就可以。可以用Arduino平台编译ESP8266,直接用SP8266模块的I/O口来操作控制,做远程控制和数据通讯(可以不用单片机),编程可以作为服务器。
主要通讯方式就是485通讯,其次还有422,232,以及CAN总线通讯,假设其中一个plc为上位机。我认为作为新手用51单片机最好用PCB万能板焊接一个单片机实验板,一来这样能够提高自己的动手能力;二来可以锻炼自己的编程调试能力。与用什么单片机无关,关键的是你找个CRC校验C语言子程序拿来引用,然后再看看MODBUS常用的读写功能的数据格式。
假如你在利用单片机或者上位机编程时,你可以定义你自己的协议,就是你DIY的协议。使用Modbus访问16bit功能码,连续访问2个代表一个32位数据,两个16bit数据的工作需要自己完成:如PDU=功能码 数据域=0X03 [0X0000X0002]。RS485只是一种硬件接口,他只是把来自单片机UART的信号,翻转电平进行传输,并驱动线缆。
MODBUS是一种软件协议。把所有代码加起来计算和,再与最后个字节比较,这只是一种校验和的方法。对于普通的通信可以用,方法简单,程序也好写。当然可以自己制定一个具体的协议。单片机控制变频器可以通过几种手段:一。使用外部端子;二。使用D/A模拟电压控制,一般0-10V可调。使用RS485,MODBUS通信模式。
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容