基于GD32E231的Modbus_RTU(RS485)现场总线Remote Inputs/Outputs Modules系统设计
[复制链接]
详细文档
作品提交.docx
(626.06 KB, 下载次数: 24)
源代码
FreeRTOSv10.2.1_MultiButton_USART_DMA_FreeModbus.rar
(11.11 MB, 下载次数: 343)
PCB原理图及打样文件
https://lceda.cn/editor#id=|2757f12a27324aebac45ee8b3f120693|f2b5d7b53466488fa332b206a804c7ed|53e5f75b74e64987a75c6cf6a065912c|65f4d1c274b846c5bd36727f267aa75f
科技发展日新月异,无论是在生活中,还是在办公场所,我们都会接触到各种各样的电子设备。而众多电子设备共同工作,也会产生一些信号源,为了更好地传输及采集信号,远程IO模块、信号变送器、信号采集模块等工业控制产品被开发出来。
那么,远程IO模块有什么用?它的功能是什么?
以前,人们在铺设现成与盘柜之间的线路时,必须一根一根的连接,大大增加了线缆的成本和施工的时间,且如果距离都比较远还要面临电压衰减等问题。而有了远程IO模块,则有效的解决了这一问题。
假如你的盘柜距离现场有200米 ,不使用远程IO,那么你每一条信号线都要放线200米,那么将远程IO模块安装在现场,可以从成本上为你节省了众多线缆的钱以及减少了施工的复杂性。
简单来说,有时候,会把一些IO设置在现场设备集中,距离中控又远的地方,然后通过光纤接回中控室,就是为了节省电缆采购和施工。有时候,逻辑上的“远程”是因为“本地IO”允许数量无法满足实际需要,需要接“远程IO模板”,具体要看实际情况了。
此外,一般机柜间是放在装置现场的。但有些控制信号,比如急停、旁路等控制信号在控制室实现,所以需要采用远程IO模块,把这些信号送到机柜间内控制系统。
分布式远程IO模块如今已应用在众多领域之中,它作用是大的。那么,关于分布式远程IO模块的特点你知道吗?
1、减少控制盘台的数量
采用分布式远程IO模块对锅炉、汽机、发电机等设备的金属温度进行监测可以减少控制盘台的数量,缩小控制室面积和空间使控制室整齐美观,而且可有效提高视点的可靠性、测量精度。
2、减少了安装费用
分布式远程IO模块比DCS更节约硬件设备,使用分布式远程IO模块,可以大量的减少安全栅、隔离器、远程IO模块、现场电缆和接线端子,这样就节省了IO装置以及安装这些装置的机柜和空间,减少了安装费用。
3、可靠性
分布式远程IO模块的安全栅、隔离器、端子柜、IO模件、现场电缆和接线端子的数量大大减少。现场信号采用数字传输,大大提高了系统的抗干扰能力。这些因素均使分布式远程IO模块可靠性得到了提高!
4、维修性
由于现场级彻底分散,同时大量的减少安全栅、隔离器、I/O模件、现场电缆和接线端子。因此分布式远程IO模块大大提高其维护性能。
5、分散性
与传统的DCS相比较,分布式远程智能I/O体现了更彻底的分散性,它每20通道的数据采集处理都才用独立的电源、CPU,因此故障也被分散。即使任何一个前端的故障也不影响其他前端的正常运行。
6、环境适应能力
分布式远程IO模块环境温度为-20—70,防护等级为IP56,因此适用于锅炉顶部等温度环境比较恶劣的场所。
下面基于GD32E231的Modbus_RTU(RS485)现在总线Remote Inputs/Outputs Modules系统设计开发:
2功能介绍
电源:外部DC24V输入,经DC-DC降压到DC3.3V,给整个系统供电(GD32E231、输入光耦、输出光耦、LED、RS485)。
RS485转换:GD32E231的USRAT0经MAX483电平转换成RS485和外部通信。
输入IO:外部数字量DC24V输入,经电阻降压,控制光耦,耦合给GD32E231输入引脚。光耦起着和外部信号隔离。
输出IO:GD32E231输出引脚控制光耦,耦合外部MOS管,从而控制输出。光耦起着和外部信号隔离。
3Modbus_RTU现场总线介绍
MODBUS协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。Modbus 协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
Modbus 是一个请求/应答协议。
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
1、在Modbus网络上转标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由 Modem组网。控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码所有要发送的数据、一错误检测域。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
传输方式 ASCⅡ & RTU模式
2、在其它类型网络上转输在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。在消息位,Modbus协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。
3、查询—回应周期
(1)查询
查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码 03 是要求从设备读保持寄存器并返回它们的内容。
数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。
(2)回应
如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:象寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。
4支持的功与特点
Modbus Message Structure
The Modbus protocol uses 16-bit words (registers) divided into two bytes of 8 bits.
A Modbus message starts with a header followed by a 1-byte address. A Modbus
message uses a Modbus function code (see page 67) as its first byte.
The table below describes the full structure of a Modbus RTU message:
Mask writing (22): 结果= (当前内容AND And_Mask) OR (Or_Mask AND And_Mask)
Abort Code
The meaning of error codes is given in the table below:
Electrical Specifications
The network interface module supports 2-wire Modbus. Communication type is halfduplex.
Communications Configuration
The Modbus communication parameters which define the frame can be configured
in a number of different ways.
5寄存器映射
PA1 à DISCRETE_INPUT0
PA2 à DISCRETE_INPUT1
PA3 à DISCRETE_INPUT2
PA4 à DISCRETE_INPUT3
PA5 à DISCRETE_INPUT4
PA6 à DISCRETE_INPUT5
PB4à DISCRETE_INPUT6
PB5à DISCRETE_INPUT7
PB6à DISCRETE_INPUT8
PB7à DISCRETE_INPUT9
PB8à DISCRETE_INPUT10
PB0à DISCRETE COILS0
PB1à DISCRETE COILS1
PB10à DISCRETE COILS2
PB11à DISCRETE COILS3
PB12à DISCRETE COILS4
PB13à DISCRETE COILS5
PB14à DISCRETE COILS6
PB15à DISCRETE COILS7
6功能演示
2.mp4
(13.44 MB, 下载次数: 3)
3.mp4
(8.99 MB, 下载次数: 3)
|