1、昆仑通态屏做主机用昆仑通态组态软件开发,STM32单片机做从机由c语言代码; 2、在STM32单片机上,定义寄存器的开关量读取、数值采集读取的定义; 3、主机和从机通讯遵循Modbus协议; 3、昆仑通态屏主机按从机的设备地址进行访问,定时查询从机的寄存器状态,如有变化即读取数据,或进行寄存器的状态读写,实现主机与从机之间的数据通讯。 4、此例子中为两段源码,主机用昆仑通态组态软件开发,从机用STM32的单片机C语言开发,详细介绍了主机及从机对应参数的Modbus协议通讯。
1
单片机MODBUS_RTU协议(从机)
2021-05-20 11:43:53 5KB MODBUS_RTU 51 stm8 stm32
1
最近研究了一下MODBUS通信,在STC12C5A60S2单片机上实现了MODBUS协议的部分功能,方便上位机从单片机系统上获取数据,比如由单片机获取的温度、湿度、或者控制信号的状态等。
1
51单片机modbus实例,内部提供了比较详细的代码,并且方便大家移植工程
2021-04-23 07:59:01 57KB 51 modbu
1
51单片机MODBUS RTU通信实例rar,51单片机MODBUS RTU通信实例
2021-04-02 20:06:29 112KB 综合资料
1
51单片机modbus例程 _基于Modbus的智能工业控制器监控系统的设计.doc Modbus两种协议的编程方法.doc 串口通讯的概念及接口电路.doc
2021-03-20 20:18:03 3.54MB 51单片机modbus例程
1
在STM8S003单片机最小系统上实现modbus通信协议,单片机做为从机,接收主机发送的指令,实现modbus简单通信,仅支持读多个保持寄存器(03),写单个保持寄存器(06),写多个保持寄存器(16),这三个指令。
2021-02-17 15:56:53 553KB STM8 003 modbus 通信
1
C51 单片机 Modbus协议, C语言实现,RS232电平传输,全双工模式。
2020-01-25 03:05:35 15KB Modbus协议
1
三菱、西门子、欧姆龙、松下PLC、单片机MODBUS RTU通信 CRC校验子程序rar,三菱、西门子、欧姆龙、松下PLC、单片机MODBUS RTU通信 CRC校验子程序
2020-01-03 11:39:24 798KB 综合资料
1
void presetSingleRegister(void) //设置单个寄存器 { U8 addr; U8 tempAddr; U8 setCount; U16 crcData; U16 tempData; //addr = (receBuf[2]<<8) + receBuf[3]; //tempAddr = addr & 0xfff; addr = receBuf[3]; tempAddr = addr; //& 0xff tempData = ( receBuf[4]<> 8; sendBuf[3] = addr & 0xff; sendBuf[4] = receBuf[4]; sendBuf[5] = receBuf[5] ; setCount = 6; //共6个字节 crcData = crc16(sendBuf,6); sendBuf[6] = crcData >> 8; sendBuf[7] = crcData & 0xff; sendCount = 8; beginSend(); } //设置多个寄存器 void presetMultipleRegisters(void) { UINT8 addr; UINT8 tempAddr; UINT8 byteCount; UINT8 setCount; UINT16 crcData; UINT16 tempData; UINT8 i; //addr = (receBuf[2]<<8) + receBuf[3]; //tempAddr = addr & 0xfff; addr = receBuf[3]; tempAddr = addr & 0xff; //setCount = (receBuf[4]<<8) + receBuf[5]; setCount = receBuf[5]; byteCount = receBuf[6]; for (i = 0; i < setCount; i++, tempAddr++) { //SBUF = receBuf[i*2+7]; //SBUF = receBuf[i*2+8]; tempData = (receBuf[i*2+7] <> 8; sendBuf[3] = addr & 0xff; sendBuf[4] = setCount >> 8; sendBuf[5] = setCount & 0xff; crcData = crc16(sendBuf, 6); sendBuf[6] = crcData >> 8; sendBuf[7] = crcData & 0xff; sendCount = 8; beginSend(); }码
2019-12-21 22:05:12 8.16MB modbus
1