MODBUS RS485客户机和服务器之间的通信设备使用意法半导体核董事会
这个例子展示了如何使用仿真软件®编码器™支持包意法半导体®而言董事会金宝app实现MODBUS®RS4金宝app85异步、MODBUS客户机和服务器之间的串行通信设备。它也显示了操作的四个模式:客户端读取、客户端编写,服务器读取、和服务器写。
金宝app意法半导体®支持其核心板:
STM32 F767ZI核
STM32 F746ZG核
介绍
简单,高效的沟通,和简化和快速数据通信使MODBUS RTU RS485的一个最广泛使用的串行通信协议在电子和仪器仪表行业。在这个客户机/服务器体系结构中,客户端设备作为客户机和服务器设备充当服务器。每个设备在RS485网络上引用的是一个独特的8位地址或标识符。
这个例子展示了MODBUS RS485协议的功能使用两个STM32 F767ZI董事会作为客户机和服务器,核的网络通讯协议的客户端模型前和部署网络通讯协议服务器模型部署在后者。
这个例子也处理利用不同的操作模式,对客户端和服务器设备。
客户阅读:客户端设备从服务器读取数据设备寄存器(s) / RS485网络
客户端写:客户端设备写数据到服务器设备寄存器(s) / RS485网络
服务器读取:服务器设备从服务器读取数据设备寄存器/ RS485网络
服务器写:服务器设备将数据写入服务器设备寄存器/ RS485网络
这个表类别不同的服务器设备由MODBUS寄存器引用客户机和服务器设备。
注册|注册|大小允许客户机类型操作注册- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -线圈| |出读写离散输入| |出阅读保持寄存器| 16位|读和写输入注册| 16位|阅读
先决条件
我们建议您完成开始使用仿真软件编码器使用意法半导体核董事金宝app会支持包金宝app的例子。
所需的硬件
STM32 F767ZI董事会核
这个示例使用一个STM32 F767ZI董事会作为客户端和另一个核STM32 F767ZI核板板为一个服务器。您可以使用任何的意法半导体核董事会从列表中建议的董事会。
两个微型USB电缆
两个RS485盾牌
依赖关系
实现这个示例需要成功地部署这些模型®模型在每个支持的意法半导体核板:金宝app金宝app
金宝app仿真软件模型名称| |部署硬件的目的- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1。stmnucleo_modbus_server |第一两意法半导体核板|行为作为一个服务器设备2。stmnucleo_modbus_client两意法半导体核板| |第二行为作为客户端设备
任务1:连接设置
MODBUS客户机和服务器设备必须连接在同一RS485网络成功的沟通。
任务2:配置客户端模型和校准参数
这种支持M金宝appODBUS客户机包提供了一个预配置模型。
打开这个模型,在MATLAB®命令窗口运行这个命令:
open_system (“stmnucleo_modbus_client”)
仿真软件金宝app模型为客户机可以分为两部分,写信给服务器和从服务器读取基于客户端可以在服务器上执行的操作类型设备寄存器。默认值为仿真软件客户端模型预配置在这个例子中根据服务器金宝app注册规模和允许客户端操作。
MODBUS客户机配置写入服务器模式的操作
客户端写操作是有效的在线圈和寄存器。这个例子使用了两个MODBUS RS485客户写块实现线圈上的写操作寄存器和寄存器,分别。
执行1比特对线圈寄存器的写操作,改变滑块的位置开关。的在
职位描述数据1
是写在这些寄存器,而从
职位描述数据0
是写在这些寄存器。在这个模型中,使用三个滑动开关输出的多路复用和美联储作为输入的MODBUS®RS485客户写块。
您可以配置以下参数写入数据的滑动开关线圈寄存器:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。选择写多个线圈选项函数参数。
通知客户端三个线圈寄存器写入数据,指定第一个线圈寄存器的地址线圈的地址参数。默认值是
0
。输入
3
在线圈的数量参数。
类似地,执行16位客户对持有寄存器的写操作,这个示例使用一个计数器计数的值从0到255。美联储不同步的计数器的输出作为输入第二MODBUS RS485客户写块。
您可以配置以下参数写数据不同步的计数器控股寄存器:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。选择写多个控股寄存器选项函数参数。
通知客户端写数据到寄存器,指定第一个线圈寄存器的地址保持寄存器地址参数。默认值是
0
。输入
2
在持有注册数量参数。
MODBUS客户机配置为读取服务器的操作模式
客户端读操作是有效的在所有服务器设备寄存器(线圈,持有、离散输入和输入)。四个MODBUS RS485客户机读取块用于实现输入和离散输入寄存器的读取操作,分别。
出的脉冲发生器用于离散输入寄存器写入数据。从离散输入寄存器读取的数据是可用的数据端口的网络通讯协议客户端块离散输入寄存器中读取。这些数据是有效的只有状态端口值0
指示成功的读操作,其数据端口上的有效数据的存在。一盏灯指标用于表示1比特从离散输入寄存器读取。
您可以配置以下参数阅读出的脉冲发生器离散输入寄存器的数据:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。确保配置是一样的服务器地址作为用于MODBUS RS485服务器写块离散输入寄存器。选择读离散输入选项函数参数。
通知客户端读取数据从一个离散输入登记,指定的地址离散输入地址参数。确保配置中使用的相同的离散输入寄存器地址MODBUS RS485服务器写块离散输入寄存器。默认值是
0
。设置样品时间参数。
同样,这个示例使用一个不同步的计数器输入寄存器写入数据。从输入寄存器中读取的数据是可用的数据端口MODBUS RS485端块输入寄存器中读取。这些数据是有效的只有状态端口值0
指示成功的读操作,其数据端口上的有效数据的存在。显示用于显示16位数据块读取输入寄存器。
您可以配置以下参数读取计数器数据从输入寄存器:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。确保配置是一样的服务器地址作为用于MODBUS RS485服务器写块输入寄存器。选择读取输入寄存器选项函数参数。
通知客户端从一个输入寄存器读取数据,指定的地址输入寄存器地址参数。确保相同的输入寄存器地址配置为用于MODBUS RS485服务器写块输入寄存器。默认值是
0
。设置样品时间参数。
您可以配置以下参数从服务器读取数据线圈寄存器:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。确保配置是一样的服务器地址作为用于MODBUS RS485端为线圈寄存器写块。选择读多个线圈选项函数参数。
通知客户端读取数据从三个线圈登记,指定的地址线圈寄存器地址参数。确保配置中使用的相同的线圈寄存器地址MODBUS RS485客户为线圈寄存器写块。默认值是
0
。设置样品时间参数。
您可以配置以下参数从控股寄存器读取数据:
进入独特的8位服务器地址的标识符服务器地址参数。在这个模型中,它被配置为
1
。确保配置是一样的服务器地址作为用于MODBUS RS485端为线圈寄存器写块。选择读多个控股寄存器选项函数参数。
通知客户端读取数据从两个保持寄存器,指定的地址保持寄存器地址参数。确保配置中使用的相同的线圈寄存器地址MODBUS RS485客户写块存储寄存器。默认值是
0
。设置样品时间参数。
任务3:配置服务器模型和校准参数
这种支持M金宝appODBUS服务器包提供了一个预配置模型。
打开这个模型,在MATLAB®命令窗口运行这个命令:
open_system (“stmnucleo_modbus_server”)
服务器的金宝app仿真软件模型可以分为两部分,写信给客户和从客户端读取基于服务器设备可以执行的操作类型的寄存器。默认值为仿真软件服务器模型预配置在这个例子。金宝app
MODBUS服务器配置写入客户机模式的操作
这个例子使用了两个MODBUS RS485服务器写块来实现上的写操作输入寄存器和离散输入寄存器,分别。
16位服务器执行写操作的输入寄存器,这个示例使用一个计数器计数的值从0到255。美联储不同步的计数器的输出作为输入到MODBUS RS485服务器写块输入寄存器。
您可以配置以下参数写数据不同步的计数器输入寄存器:
选择编写输入注册选项函数参数。
通知客户端从一个输入寄存器读取数据,指定的地址输入寄存器地址参数。确保相同的输入寄存器地址配置为用于MDOBUS RS485端块输入寄存器中读取。默认值是
0
。
同样,这个示例使用比特脉冲发生器向离散输入寄存器写入数据。
您可以配置以下参数写1比特的数据离散的脉冲发生器输入寄存器:
选择编写离散输入选项函数参数。
通知客户端从一个输入寄存器读取数据,指定的地址离散输入地址参数。确保配置中使用的相同的离散输入寄存器地址MODOBUS RS485端块输入寄存器中读取。默认值是
0
。
MODBUS服务器配置为从客户端读取的操作模式
这个例子使用了两个MODBUS RS485服务器读取块执行读操作线圈和保持寄存器,分别。
服务器设备读取数据写的客户端设备使用三个滑动开关。这1比特数据从线圈寄存器读取MODBUS RS485数据端口的服务器上可用线圈寄存器读取块。这些数据是有效的只有状态端口值0
指示成功的读操作,其数据端口上的有效数据的存在。1比特数据从线圈寄存器读取写入GPIO D13, GPIO销D8 GPIO销这里。
您可以配置以下参数读1比特滑动开关线圈寄存器的数据:
选择读盘选项函数参数。
通知服务器从线圈寄存器读取数据,指定的地址线圈的地址参数。确保配置中使用的相同的线圈寄存器地址MDOBUS RS485客户为线圈寄存器写块。默认值是
0
。设置样品时间参数。
任务4:客户端和服务器设备上运行模型
1。意法半导体核板充当服务器连接主机设备和客户端设备。
2。在硬件选项卡的stmnucleo_modbus_client金宝app仿真软件模型,点击监视和优化。
3所示。在硬件选项卡的stmnucleo_modbus_server金宝app仿真软件模型,点击监视和优化或构建、部署和启动。
4所示。线圈寄存器:
MODBUS RS485客户写块:改变滑块的位置开关线圈寄存器写入数据。
MODBUS RS485客户机读取块:验证上的读操作线圈的状态寄存器。观察灯显示相应的数据得到的线圈寄存器。验证如果灯状态展示正确的数据写在线圈寄存器。
MODBUS RS485服务器读取块:写入数据GPIO管脚。验证服务器的数据写入的别针展示正确的数据写在线圈寄存器。
5。保持寄存器:
MODBUS RS485客户写块:计数器和脉冲开始写数据到存储寄存器。
MODBUS RS485客户机读取块:检查的状态保持寄存器读操作。观察柜台和脉冲发生器的值对应于存储寄存器和获得的数据验证,如果相同的值显示在显示块。
6。输入注册:
MODBUS RS485服务器写块:计数器开始计数的范围从0到255的值。
MODBUS RS485客户机读取块:检查输入的读操作的状态寄存器。观察相对应的计数器值获得的数据从输入注册并验证如果相同的值显示在显示块。
7所示。离散输入寄存器:
MODBUS RS485服务器写块:1比特脉冲发生器开始切换在0和1之间。
MODBUS RS485客户机读取块:检查上的读操作的状态离散输入寄存器。观察灯显示相应的数据得到的离散输入寄存器。验证如果灯状态展示正确的数据写在离散输入寄存器。
其他的事情努力
客户机和服务器实现MODBUS模型读取和写入和多个服务器设备寄存器的所有寄存器类型。
使用MODBUS服务器设备,如温度传感器、湿度传感器、等等,实时数据通信意法半导体核委员会充当客户端设备。
实现监控系统使用PID控制器作为服务器设备和意法半导体核委员会作为客户端设备。