LabVIEW与Arduino的Modbus通信成功 (labview软件介绍)

rduino的串口通信库

Arduino作为一款配置弱小,经常使用方便的开发板,在物联网、智能家居与工业消息化等各个方面运行逐渐宽泛,最近因为名目标须要,咱们也驳回Arduino启动一系列产品的开发。为了简化产品开发流程,在架构上咱们经常使用计算机作为上位界面,在Arduino端仅成功控制与采集配置。这就触及到Arduino与计算机之间的通信与衔接疑问。依据官网的相关资料,Arduino与计算机之间的通信模式大抵可分为两种。

一种是间接应用Arduino自带的串口,经过串口协定启动通信。这种模式有最大的灵敏性,Arduino端可以成功必要的配置代码,仅经过串口与上位计算机启动数据替换。缺陷是须要在上位计算机与Arduino端区分写程序并成功完整的通信协定。

第二种方法是驳回成熟的固件Firmware,比如用于python通信的pyFirmware或许用于与LabVIEW通信的LIFA或许LINX等。固件其实是将串口通信中几种罕用命令固化在Arduino板中,仅经过上位接口发送相关指令即可成功配置。这一方法的长处在于实施方便,但缺陷也很显著—配置十分有限,不允许初级配置的裁减,从某种意义上,齐全没有施展Arduino应有的性能,而只是将其作为了一个方便的配件接口。对于Arduino通信方法的具体说明,可以参考官网文档

ArduinoModbus通信库

联合上述两种通信方法的优劣,思考到工业通信中Modbus曾经是十分成熟的处置打算,假设能驳回Modbus作为上位与Arduino间的通询疑问,即能处置自己编写串口命令协定的复杂性与无法靠性,又能处置间接写入firmware对Arduino的配置限度。这样能力在产品中获取最好的运行。

Arduino的Modbus通信打算中,官网有不少成熟的库,经过再三选用,最后选用了modbus-arduino库作为处置打算,重要是思考到该库可以完整成功ModbusSlave端的命令配置,该库我Fork到了自己的repository里,可供参考.modbus-arduino

Modbus-arduino库有具体的经常使用说明,以下为经常使用Arduino的13引脚LED等做测试的代码示例。因为仅用到了ModbusSerial,我没有导入整个库,只是把Modbus.h,Modbus.cpp以及ModbusSerial.h和ModbusSerial.cpp复制到名目文件夹下。

#include"Arduino.h"

#include"Modbus.h"

#include"ModbusSerial.h"

constintLED_COIL=13;

constintLEDPin=13;

ModbusSerialmb;

voidsetup(){

//putyoursetupcodehere,torunonce:

//ConfigModbusSerial(port,speed,byteformat)

mb.config(&Serial,9600,SERIAL_8N1);

//slaveID1-247

mb.setSlaveId(1);

mb.addCoil(LED_COIL,false);

pinMode(LEDPin,OUTPUT);

voidloop(){

//putyourmaincodehere,torunrepeatedly:

mb.task();

digitalWrite(LEDPin,mb.Coil(LED_COIL));

上位LabVIEW端

驳回Modbus协定后上位在LabVIEW端成功就方便了很多,调用LabVIEW自带的Modbus库即可,程序表示如下(图形化言语就没法拷代码了):

当然,上位程序的Python成功也并不复杂,可以经常使用PySerial,pymodbus,pymodbus-tk等库成功,相应的例程咱们在后续开发中也会启动测试与颁布

作者:西安维思智能化工程有限公司魏智勇

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论