协议宏通过Modubs读写温控器当前值与设定值
modbus 读写参数处理

modbus 读写参数处理(实用版)目录1.Modbus 简介2.Modbus 读参数处理3.Modbus 写参数处理4.Modbus 参数处理的应用正文一、Modbus 简介Modbus 是一种串行通信协议,广泛应用于工业自动化和控制系统中。
它最初由 Modicon 公司开发,现在已成为工业领域中事实上的标准。
Modbus 协议支持多种数据传输方式,如串行、以太网和无线等,其中串行传输是最常见的。
Modbus 协议的主要特点是传输速度快、可靠性高、扩展性强和兼容性好。
二、Modbus 读参数处理Modbus 读参数处理是指从 Modbus 设备中读取参数的过程。
这个过程可以分为以下几个步骤:1.连接:首先,需要建立与 Modbus 设备的连接。
这可以通过串行通信线、以太网或者无线网络实现。
2.确定数据地址:在 Modbus 设备中,参数通常被存储在一定的地址范围内。
要读取参数,需要先确定参数所在的地址。
3.读取参数:确定了参数地址后,就可以通过 Modbus 协议从设备中读取参数了。
Modbus 协议支持多种数据类型,如整数、浮点数、布尔值等。
4.解析参数:读取到的参数需要进行解析,以便后续处理和应用。
解析过程通常包括校验、转换和归一化等操作。
三、Modbus 写参数处理Modbus 写参数处理是指向 Modbus 设备中写入参数的过程。
这个过程可以分为以下几个步骤:1.准备参数:首先,需要将要写入的参数准备好。
这包括确定参数的值、数据类型和地址等。
2.建立连接:与 Modbus 设备建立连接,如同读参数处理一样,可以通过串行通信线、以太网或者无线网络实现。
3.写入参数:通过 Modbus 协议将参数写入 Modbus 设备。
Modbus 协议支持多种数据类型,如整数、浮点数、布尔值等。
4.确认写入:写入完成后,需要从 Modbus 设备中读取参数,以确认写入是否成功。
四、Modbus 参数处理的应用Modbus 参数处理在工业自动化和控制系统中有广泛的应用,例如:1.监控系统:通过 Modbus 协议读取设备参数,可以实现对设备的实时监控和数据采集。
PLC对温控器的控制

1、利用MODBUS便利指令将温控器的目标温度值、现在温度值读出到显示装置。
2、利用MODBUS便利指令实现对温控器参数进行如下设置:【温控器参数必要设置】DTB系列温控器通讯规格:1. 支持MODBUS ASCII/RTU 通讯格式,支持的波特率2400, 4800,9600, 19200, 38400。
2. 支持功能码03H (读多笔)、06H (写入1笔),支持10H (写多笔)。
3. ASCII模式下不支持7,N,1或8,O,2或8,E,2通讯格式。
4. RTU模式下支持8,N,1或8,N,2或8,O,1或8,E,1通讯格式。
5. 通讯地址设置范围1~255,通讯地址0为广播地址。
PLC 软元件控制说明 MO执行MODRD 指令 M1执行第1个MODWR 指令 M2执行第2个MODWR 指令 M3执行第1个MODRW 指令 M4执行第2个MODRW 指令 控制程序:M1002HI —rSET MOVT4M2-tHM3_t|—M4HtH MOV SET M1143 通讯棋式舟 MODBL-S RTU ・ MOV KO D1 MOV K5D D2 MOV K3C D3LD= ca K2 LI — _1 _____ _—_r弍行第 <3Z> 或行曲 MODWR IB* MODR7U '±-■■ MODRW -m RST CO |泊MI122 舌宣通说格式 eeoo.e.N,2 K -00 卫■诡讥逐时 严-1 DDms MOV K5CO □ 0 低蛊丸or LD =LD-L 2 = 汛和 MOD^D :: 1 T 弩和卜運蔽 r iu -方 r 应賈为3匸 COLD= CO琪行曲coCOCOKOKIMOMlM二*MODRD/WODW RZMODRW斎4>怫sm;ftRSTM二27【程序说明】1、对PLC RS-485 通讯端口进行初始化,使其通讯格式为MODBUS RTU ,9600, 8,N,2。
利用VB开发基于Modbus协议的温度、湿度监控系统软件

利用 V B开发基于 Mo b s d u 协议的 温度、 湿度监控 系统软件
陈 曦, 涛, 张 付少波, 孙英科, 任金全
( 河北工业大学 自 动化研究所 , 天津 303) 010
[ 要I 摘 控制技术、 计算机技术和网络技术相结合促进了集散控制系统( C ) D S 的进一步发展, 使控制系统实现了集中管 理、 分散控制。本文以一个基于 R -45 S 8 总线的温度、 湿度控制系统为例, 全面介绍了该系统的硬件组成及软件结构, 并
20 5
万方数据
( 冶金 自ห้องสมุดไป่ตู้动化》04 20 年增刊
io6 n ()= & 2 f H C io7 n ()= &HA f 8 io8 n ()= 邑H3 f 8
Ma F r . C m T oO tu = i o i om MS o m w . pt n n u f
编程过程中应该注意: ①在用户使用监控软件的时候应该充分考虑用户操作合法性问题, 譬如端口 使用情况、 通信设备工作状态等; ②由于系统的通信过程是串行通信, 在编程过程中注意上位机与下位机 之间的同步, 当不同步时, 通信可能被中断, 应该适当地考虑时间的延迟。
1 温度、 湿度控制系统的构成
该系统属于集散控制系统( C ) D S的一个小型的操作站, 网络的拓扑结构采用菊花链形式, 如图 1 所
不 。
能仪表
调节阀
加湿器
湿度传感器
温度传感器
图 1 系统构成图
系统的各个部分的组成和功能为: 操作站既可以是工业控制机也可以是桌面台式机, 安装在控制室内。其作用是运行组态软件, 将各
两种传输模式中( S I或R U , A CI T )传输设备已 Mobs 将 du 消息转为有起点和终点的帧, 这就允许接 收的设备在消息起始处开始工作, 读地址分配信息, 判断哪一个设备被选中( 广播方式则传给所有设备) ,
毕业设计(论文)-基于modbus协议的温度测控节点的设计[管理资料]
![毕业设计(论文)-基于modbus协议的温度测控节点的设计[管理资料]](https://img.taocdn.com/s3/m/06a8dde8964bcf84b8d57bd0.png)
基于Modbus协议的温度测控节点的设计摘要在机械、化工、纺织等行业,随着生产规模的不断扩大,以及对生产过程集中监控的迫切要求,现场总线技术应运而生,并成为了当今测控领域研究的热点之一。
Modbus协议作为现场总线的一种,以其开发成本低,简单易用等诸多优点己被工业领域广泛接受。
温度作为工业中重要的测量参数之一,本课题选择了温度作为测量的对象,并设计了基于Modbus协议的温度测控节点。
本设计采用TC1047A传感器采集现场温度,由STC12C5A60S2单片机进行AD 转换和Modbus协议通讯。
通讯的物理层采用RS485接口,并增加了光电隔离、抗雷击和短路保护等功能。
最后实现了单个节点和PC机的Modbus协议通讯,并通过控制蜂鸣器和继电器来模拟工业现场控制。
本文分别从硬件和软件上阐述了该温度测控节点的实现方法。
关键词温度测控Modbus协议RS485 STC12C5A60S2The Design of Temperature Measuring and ControllingNodeBased to Modbus ProtocolABSTRACTWith the continuous expansion of production scale, and the urgent requirements in centralized monitoring of the production process in mechanical, chemical, textile and other industries. Fieldbus technology came into being, and become one of hot research field of measurement and control today. As one of field bus, Modbus protocol have been widely accepted because of low development cost, easy to use and many other advantages in temperature is one of the important parameters measured in industry,so it has been chosen a measurement of the object,temperature measurement and control nodes has been designed based on Modbus protocol.This design uses TC1047A sensor to collect on-site temperature,AD conversion and Modbus protocol communications can be done by STC12C5A60S2 physical layer of communication adopts RS485 interface, and have optical isolation, anti-lightning and short circuit protection in addition. Finally, achieved the Modbus protocol communication between a single node and the PC, and simulate industrial control by controlling the buzzer, a n d r e l a y.T h i s p a p e r d e s c r i b e s t h e i m p l e m e n t a t i o n o f temperature control node from hardware and software.KEY WORDS Temperature Monitoring Modbus protocol RS485 STC12C5A60目录中文摘要 (Ⅰ)英文摘要 (Ⅱ)1 绪论 (1)2 设计方案 (3)方案概述 (3)方案论证 (3)通讯可靠性 (4)温度检测电路选择 (4)系统电源稳定性 (5)3 硬件电路设计 (6)最小系统电路 (6)温度检测电路 (6)电源电路 (7)报警控制电路 (9)通讯电路 (10)显示电路 (13)硬件抗干扰的设计 (14)4 MODBUS协议概述与应用 (16)MODBUS协议概述 (16)总体描述 (16)MODBUS数据单元 (17)MODBUS通信原理 (17)M两种传输方式 (19)ASCll模式 (20)RTU模式 (20)MODBUS消息帧 (21)ASCll帧 (21)RTU帧 (21)字符的连续传输 (22)错误检测方法 (23)LRC检测 (24)CRC检测 (24)5 软件设计 (25)AD采集程序设计 (26)串口中断处理程序设计 (27)MODBUS协议程序设计 (29)CRC计算及校验程序设计 (29)6 总结 (33)致谢 (34)参考文献 (34)附录 1 (36)附录 2 (37)1 绪论随着计算机技术和网络技术的发展,工业参数的数字采集促进了现场总线技术的发展,目前现场总线已经从当初的4-20mA电流信号升级为数字信号,发展成为全数字通讯,解决了现场信号远距离高速传送的问题,而且提高了抗干扰性能,增加了系统配置的灵活性,节省了硬件投资,是未来生产自动化和过程控制的发展方向。
西门子200PLC和omron温控器modbus通讯程序

西门子200PLC和omron温控器modbus通讯———江湖小色随着智能温控仪表的普及以及工业现场控制的需要,以温控器为代表的智能仪表和PLC等上位机的通讯在过程实施中越来越多的被使用。
今天闲来无事,给新手以及正在做类似项目的朋友做了个简单的教程紧供参考(高手就不必看了)。
由于时间有限,MODBUS通讯的格式等就不再这里赘述了,网上多的是随便down一个看吧。
一:欲做MODBUS通讯,首先要加载MODBUS库如下图1.库上点右键(图1)-----添加删除库(图2)-----添加(A)(找到MODBUS库文件的地址就好了)库加载成功后如图 3. 你也可以向我一样直接下载西门子的库文件(Inst_Library_V11)安装,在哪儿找就不用说了吧。
图1图2图3二:库加载完了,接着就是初始化MODBUS了。
1.以端口0为例,打开加载的端口0的modbus库。
2.加载程序到网络,并如图设置参数(baud=通讯比特率 parity=端口的模式0为PPI通讯1为modbus通讯 timeout=通讯超时时间 done=指令执行完成 error=错误代码)。
本例中通讯的比特率设定为38400(高的比特率可以获得高的通讯效率但是如果环境干扰比较大就要设的低一些不易出错)。
3.modbus通讯指令同时紧有一条可以执行,所以要写如下图的一个小程序。
目的是让4.中的程序交替执行。
程序很简单就不多解释了,如果有什么不懂可以发邮件于我yifan.163@。
4.下面两条指令的功能就是监控温控器的设定值和当前值。
(其中slave是温控器的站号RW可以为0(读)也可以为1(写)决定这条指令是读参数还是写参数 addr就是要读的地址喽,这里要说一下,omron的地址是0000开始而且是16进制的ASCII码,PLC 读地址时要把地址转换为10进制,而且要在原来的地址上加1,然后加40000.例如要读温控器的当前值,他的地址是0404即十进制的1028那么PLC读此参数的地址是40000+1028+1=41029。
SHT-标准MODBUS协议-湿度

MODBUS RTU 通讯协议波特率9600 数据格式:8位校验位无停止位1位数据默认1位小数,例如10表示1.01.读测量值(温度、湿度、开关状态)命令:主机读数据格式:开始从机地址命令寄存器地址寄存器个数CRC校验>5ms延迟1字节0x03 高字节低字节0x00 22 高字节低字节0x00 03高字节低字节0xXXXX从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节0x03 6 温度高位温度低位湿度高位湿度低位状态高位状态低位高字节低字节0xXXXX注意:状态:0x80 00 表示温度为负,0x00 00 表示温度为正例如:命令:01 03 00 22 00 00 e5 c0返回:01 03 06 01 21 02 E3 80 00 0d 2d2.读继电器设定值(温度上限、温度下限、湿度上限、湿度下限、温度回滞、湿度)命令:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 10 温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节例如:命令:01 03 00 33 00 00 b5 c5返回:01 03 0A 01 05 00 A1 02 56 01 C3 0A 32 C5 B2 3.读补偿状态及温湿度补偿数值:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 5 补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节例如:命令:01 03 00 44 00 00 05 df返回:01 03 05 00 00 04 00 08 F2 95注意:补偿状态=0x00 表示关补偿=0x11表示开补偿补偿高字节=0x00表示正补偿=0x11表示负补偿3.写继电器设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x0010字节温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 33 00 00 0a 01 93 00 cd 03 20 01 96 05 05 68 4f 返回:01 10 00 33 00 00 30 063.写温度补偿设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 044高字节低字节0x00 0x005字节补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 44 00 00 05 11 00 05 11 03 6e 04 返回:01 10 00 44 00 00 80 1C4.写IP地址:主机写数据格式:01 10 00 55 00 00 01 02 1c 5b开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 055高字节低字节0x00 0x00字节数0x010x02(IP地址)0x1c(高字节)0x5b 低字节从机返回数据格式:02 10 00 55 00 00 D0 2A开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 0x02 0x10 高字节低字节0x00 0x55高字节低字节0x00 0x00高字节低字节0x2b 0x9cIP改后测试:读新地址数据:命令:02 03 00 22 00 00 e5 f3返回:02 03 05 00 D1 01 5D 00 A2 EB附件:读数命令(1-10):01 03 00 22 00 00 e5 c002 03 00 22 00 00 e5 f303 03 00 22 00 00 e4 2204 03 00 22 00 00 e5 9505 03 00 22 00 00 e4 4406 03 00 22 00 00 e4 7707 03 00 22 00 00 e5 a608 03 00 22 00 00 e5 5909 03 00 22 00 00 e4 880a 03 00 22 00 00 e4 bb0b 03 00 22 00 00 e5 6a0c 03 00 22 00 00 e4 dd0d 03 00 22 00 00 e5 0c0e 03 00 22 00 00 e5 3f0f 03 00 22 00 00 e4 ee改IP命令(1-10)01 10 00 55 00 00 01 02 1c 5b01 10 00 55 00 00 01 03 dd 9b01 10 00 55 00 00 01 04 9c 5901 10 00 55 00 00 01 05 5d 9901 10 00 55 00 00 01 06 1d 9801 10 00 55 00 00 01 07 dc 5801 10 00 55 00 00 01 08 9c 5c01 10 00 55 00 00 01 09 5d 9c01 10 00 55 00 00 01 0a 1d 9d01 10 00 55 00 00 01 0b dc 5d01 10 00 55 00 00 01 0c 9d 9f01 10 00 55 00 00 01 0d 5c 5f01 10 00 55 00 00 01 0e 1c 5e01 10 00 55 00 00 01 0f dd 9eCRC校验:unsigned char code auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40};unsigned char code auchCRCLo[]={0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40};unsigned int calcrc16(unsigned char *puchMsgg,unsigned int usDataLen){unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/unsigned int uIndex ; /* CRC循环中的索引*/while (usDataLen--) /* 传输消息缓冲区*/{uIndex = uchCRCHi ^ *puchMsgg++ ; /* 计算CRC */uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;uchCRCLo = auchCRCLo[uIndex] ;}return (uchCRCHi << 8 | uchCRCLo) ;}CRC例子:(写命令返回数据)uart1_send_buf[0]=00x01;//slaveaddr;uart1_send_buf[1]=0x10;uart1_send_buf[2]=register_start_addr/256; //寄存器起始地址uart1_send_buf[3]=register_start_addr%256;uart1_send_buf[4]=register_count/256; //寄存器个数uart1_send_buf[5]=register_count%256;crc=calcrc16(uart1_send_buf, 6 );uart1_send_buf[6]=crc/256;uart1_send_buf[7]=crc%256;----------------------------------------------------------------------------------------------------------------------。
ModBus协议温控器应用说明

GWK系列温控器应用说明郑州春泉节能股份有限公司ModBus协议温控器应用说明一、概述GWK系列温控器是郑州春泉节能股份有限公司生产的基于移动互联技术,在传统温控器功能的基础上,增加WIFI通讯接口,采用标准的ModBus协议,并完全开放协议,用户可以自己开发APP或者使用组态软件开发管理系统进行应用的智能温控器。
产品适用于所有四线三速风机盘管,可直接替代传统温控器。
温控器GWK100、GWK200、GWK201采用标准ModBus协议,其通讯协议格式有两种,一种为ModBus TCP,一种是ModBus RTU。
设备固件目前暂时只能支持其中的一种,也即要么为ModBus TCP格式,要么为ModBus RTU格式。
二、设备WIFI配置WIFI出厂设置为AP+STA工作模式。
AP模式:chuntsuan,密码:chuntsuan,访问IP:10.10.100.254,其中登录名称:admin,密码:admin。
STA模式:连接的路由器名称:CQJN,密码chuntsuan,IP地址有连接的路由器动态分配。
(如果有需求,可以在批量定制的时候按照需求进行设置)根据以上所述,进入WIFI设置有两种方式:方法1、手机或者电脑连接设备生成的热点chuntsuan,连接上之后,在浏览器中输入http://10.10.100.254,点击链接,在弹出的登录界面上用户名位置输入:admin,密码位置输入:admin,然后进入参数配置页面。
方法2、将路由器的名称设置为CQJN,密码设置为chuntsuan,设备上电之后就会自动连接路由器,在路由器的DHCP中找到设备分配给模块的IP,然后将IP地址放入浏览器,点击进行连接,在弹出的登录界面上用户名位置输入:admin,密码位置输入:admin,然后进入参数配置页面。
如图一所示:图一左侧部分显示可以进行参数设置的选项:1、系统信息:显示当前设备一些基本参数2、点击模式设置,如下图二所示:图二从显示的界面可以看到,模块支持三种工作模式,AP+STA模式、AP模式、STA模式,在实际应当中,可以选择其中的一种,建议在最终应用中选择使用STA模式。
OMRON__CJ常见问题

OMRON__CJ常见问题⽬录CJ1 (4)1.CJ1M系列PLC命名规则: (4)2.买CJ系列PLC的时候,需要同时购买CF卡吗?型号是什么? (4)3.CJ系列PLC的电池型号是什么? (4)4.CJ系列PLC上的⼩外设⼝如何转成232⼝? (4)5.CJ系列PLC带扩展机架时需要哪些配置? (4)6.CJ系列PLC需要另配端板CJ1W-TER01吗? (5)7.CJ系列的PLC带扩展机架,使⽤CJ1W-IC101和CJ1W-II101的时候,这两个模块怎么放置? (5)8.CJ有哪些电源模块?型号后带R和带C的有什么区别? (5)9.CJ1M系列哪些CPU型号内置脉冲输出功能?内置⼏路脉冲输出?输出频率最⼤为多少? (5) 10.CJ1M-CPU21/22/23 CPU单元内置脉冲输出,输出频率能否达到101Hz? (6)11.CJ1M-CPU21/22/23 CPU的内置输⼊点是否附带连接器? (6)12.CJ1M-CPU21/22/23 CPU单元内置⾼速计数响应频率是多少? (6)13. CJ1W-□D2□1的直接焊线的连接器型号? (6)14.CJ1M-CPU13-ETN和CJ1M-CPU13配置有什么区别? (7)15.CJ系列模拟量模块规格 (7)16.CJ系列PLC能带多少块模拟量模块? (8)17.CJ1W-TC模块规格 (9)18.CJ1系列的PLC的DIP开关和通讯设置有关吗? (9)19.CJ系列PLC普通I/O模块输⼊输出地址如何分配? (9)20.CJ系列特殊模块的地址分配?(例举特殊模块和总线模块的地址分配) (10)21.CJ1M-CPU21/22/23 CPU单元内置16点地址如何分配? (10)22.CJ1M-CPU21/22/23 CPU单元内置⾼速计数器当前值存储字的通道是多少? (10) 23.CJ1M-CPU21/22/23 CPU单元内置⾼速计数的软件复位位是什么? (10)24.CJ1M-CPU21/22/23 CPU单元内置⾼速计数暂停位是什么? (11)25.CJ1M-CPU21/22/23 CPU单元内置脉冲输出频率及脉冲输出当前值存储地址是多少?(11)26.CJ系列PLC怎么做modbus通讯? (11)27.CJ如何使⽤存储卡进⾏备份? (11)28. CJ系列PLC程序读保护的加密⽅法和释放密码⽅法(知道密码的情况下) (12)29.CJ在机架报错I/O 校验错误,如何处理? (12)30. CJ1⽤串⼝和计算机⽤CX-Programmer软件通讯不上,软件提⽰⽆法连接PLC?1331.两台CJ□M / CP1□使⽤1:N PC Link通信,如何操作? (13)32.CJ⼝M能否与CQM1/CPM/C200Hα做PC LINK通讯? (15)33.CJ系列模拟量输⼊模块硬件上如何确定是电压还是电流输⼊? (15)34.CJ系列模拟量输出模块是否要给模块外加供电电源? (16)35.CJ系列模拟量输⼊模块如何使⽤?输⼊通道地址是什么? (16)36.CJ系列模拟量输出模块如何使⽤?输出通道的地址是什么? (16)37.如何通过CJ的CPU+CJ1W-SCU41-V1通讯模块,使⽤协议宏模式通过Modbus-RTU 协议来读取3G3MV的0024寄存器(输出频率)数据? (17)38.如何使⽤CJ1W-ETN21模块实现与CX-Programmer软件进⾏通信? (20)39.CJ系列的PLC主站模块DRM21需要做为DeviceNet⽹的从站如何实现? (21)40. 使⽤CJ1W-DRM21的主站模块能否和其他公司的DeviceNet从站模块进⾏通讯?2141.CJ1W-DRM21模块提⽰E0错误是什么问题? (21)42.CJ1W-DRM21模块使⽤DRT从站,主站模块提⽰E2错误是什么问题? (22)43.DRM21模块提⽰D5错误,如何处理? (22)44. CJ1W-CLK21-V1模块通讯电缆连接后,模块INS指⽰灯不亮,模块RUN灯亮,模块错误指⽰灯不亮? (22)CJ2 (23)45. CJ2M系列PLC命名规则: (23)46.CJ2H系列PLC命名规则: (23)47.CJ2M和CJ1M的区别? (24)48.CJ1M-CPU2□⽤CJ2M的替代型号是什么? (24)49.CQM1H⽤CJ2M替代型号是什么? (24)50.CJ2的PLC的内置端⼝有哪些? (25)51.CJ2M-CPU的内置232⼝或选件板通讯⼝分别⽀持什么通讯协议? (25)52.CJ2系列的PLC的⽀持编程软件CX-P版本是多少? (25)53.CJ2系列的PLC可以⽀持多少个扩展机架,以及最⼤扩展IO点数能够达到多少? (26)54.CJ2H-CPU6⼝-EIP主机架配置是否和CJ1M-CPU1⼝-ETN⼀样有限制? (26)55.CJ2M可以做PC Link吗? (26)56.CJ2H-EIP、CJ2M-CPU3□内置EIP端⼝和CJ1W-EIP21有什么区别? (26)57.CJ1W-EIP21模块与CJ1W-ETN21模块的区别? (28)58.CJ1W-EIP21模块是否可以替换CJ1W-ETN21模块? (28)CJ11.CJ1M系列PLC命名规则:2.买CJ系列PLC的时候,需要同时购买CF卡吗?型号是什么?PLC的程序是存在闪存⾥⾯的,不会丢失,CF卡是⽤来备份程序,所以不是必须买的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 接线:
图1-1
图1-2
2.软件设置: (1) PLC 自动创建 IO 表并对串口 1 做如下设置(单元号是 0)
1
OMRON 客户服务中心
梯形图里做以下程序:
图1-3
图1-4
1509.15 是协议宏执行标志位,1500+单元号*25+19(串口 1 是加 9)的 15 位。 A202.00 是内部逻辑端口 1 的网络通信命令可执行标志位。 PMCR 的第一个控制字的 12-15 位的 0 内部逻辑端口 3,8-11 位的 1 是串口 1,0-7 位的 10 是 10+单元号(这里的单元号是 0);第二个控制字 0 代表序列 0 即 POTOCOL 中的 Sequence0;第三个控制字和第四个控制字分别是发送和接收的 数据通道,仅当 POTOCOL 中的 Data Address 是 Operand 时有效,所以这里都设 为 0.
反馈用变量来接收:
图1-10
5
OMRON 客户服务中心
校验:
图1-11
3.实验现象 (1)、 中选择要发送的步,触发 PMCR 指令。 在 TRACE 中看到反馈
6
OMRON 客户服务中心
(2)、
图1-14
图1-15
Potocol 中选择要发送的步,触发 PMCR 指令,可以看到 PLC 对应通道内有如下 的值:
(2) 温控器处的设置:
2
OMRON 客户服务中心
图1-5
协议选 Modbus,单元号设 1,通讯速度、数据长度、停止位和校验和 SCU 模块设 置成一致的。 CX-Protocol 处的设置 在 CX-Protocol 中新建工程,右键 New Protocol List 选择新建 Protocol,选 CS/CJ. 再右键 New Protocol,新建 Sequence;再右键 Sequence,新建 Step。右键 Send Message List 新建 Send Message。 在 Send message 里选中 data,把相应发送的数据写入 a.写入上下限值
3
OMRON 客户服务中心
图1-6
参数通过变量写入,在 DM10 开始的通道内写入以下参数:
图1-7
D100 到 D103 是设置的上下限值。 校验用 CRC-16:
b.读取当前值:
图1-8
4
OMRON 客户服务中心
图1-9
01 是站号,03 是功能代码变量读取,0000 是当前值的通道,0002 代表读一个通 道。 校验:
图1-16 当前值为 112(HEX),即 274X0.1=27.4。 可以在 TRACE 中看到反馈 010304000001127BAE
图1-17
4.实验总结 E5CZ 的 Modbus 协议数据位固定 8 位,停止位 1 位。
7
OMRON 客户服务中心
协议宏通过 Modbus 读写温控器当前值与设定值
实验设备:CJ2M-CPU33(PLC),CJ1W-SCU41-V1(串口通讯单元),E5CZ-C2MT (温控器) 实验目的:协议宏通过 Modbus 读写温控器当前值和设定值
实验步骤: 1.系统概述,硬件搭建和接线 (1) 硬件结构: