MODBUS主站从站模拟器用法

合集下载

MODBUSTCP从站模拟程序

MODBUSTCP从站模拟程序
}
sendbuf[5] = uLength*2+3; //出去头部域后的长度
sendbuf[8] = uLength*2;//数据字节长度
for(i=0;i<uLength;i++)//寄存器数据填充
{
sendbuf[i*2+9] = MyReg[uStart+i]>>8;
int error = WSAGetLastError();
printf("Accept() failed. Win32 error is 0x%lx\n", GetLastError());
goto Cleanup;
} else {
printf("Connected from %d.%d.%d.%d:%d\n", //答应远程计算机的IP和端口号
// Bind the listen socket to any local IP address.
localIp.sin_family = AF_INET;
localIp.sin_port = htons(nPort);
localIp.sin_addr.S_un.S_addr = INADDR_ANY;
继续访问 取消访问/diary,8677548.shtml
一直以来都在用MODBUS-RTU,也用单片机实现过MODBUS-RTU从站,感觉挺好用的,只是串行速度最高只能到115.2K,而且远距离通讯的时候,不得不考虑转成485或者光纤的方式,比较麻烦而且钱也花的不少.
[原创]MODBUS/TCP从站模拟程序(Windows XP+win socks) heroxx,2008-04-18 09:07:21

Modbus测试软件使用说明

Modbus测试软件使用说明

Modbus测试软件使用说明Modscan和Modsim分别用来模拟主站和从站。

前提条件:已知厂家通讯设备ID、数据起始地址、数据个数、数据功能码。

笔记本插入USB转换头后显示的com口号。

Modscan使用步骤(假设通讯设备ID为1、数据起始地址为2、数据个数24、数据功能码03、Com口号为3)硬件连接好之后1:打开modscan。

2:设置好通讯设备ID、数据起始地址、数据个数、数据功能码。

3:点击链接设置——链接在下图中设置好com口号、配置(一般为波特率9600、字节8、奇偶校验无、停止位1)、协议选择里面选择标准RTU4:确定后链接正常时发送数据(number of polls)和从站接收有效数据(valid slave responses)后个数一直累加显示。

不正常时只发送数据(number of polls)个数一直累加显示。

Modsim使用步骤(假设通讯设备ID为1、数据起始地址为2、数据个数24、数据功能码03、Com口号为3)硬件连接好之后1:打开modsim,选择File——New2:设置好通讯设备ID、数据起始地址、数据个数、数据功能码。

3:点击Connection——connect——port3(数据通讯链接)3:点击Connection——Connect——Status(数据通讯状态显示)通讯正常时com3对应的V alid和Invalid值都累加显示。

通讯不正常时com3对应的只invalid值累加显示。

注意事项:1:测试显示的数据起始地址=数据起始地址+1。

2:USB转换接头驱动可由电脑安装驱动精灵检测(插上USB转换接头)自动安装。

3:com口号的查看右击我的电脑——设备管理器——端口路守山2015年5月4号。

modbus-poll-快速入门到精通

modbus-poll-快速入门到精通

刚刚发布Modbus测试工具(Modbus Slave调试工具),不过已经是昨天了,今天开始发布Modbus测试工具(Modbus Master调试工具)。

做为Modbus主站,发送命令包,采集从站的数据,典型工具如:Modbus Poll。

Modbus Poll是Modbus主设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于监控、测试、调试Modbus通讯设备。

可以多个窗口中同时监控多个Modbus子设备!与Modbus Slave的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口数据。

支持以下Modbus协议:RTU ASCII Modbus TCP 寄存器和线圈的读写:同时操作(读/写)127个寄存器、同时操作(读/写)2000个输入/线圈支持的MODBUS功能码:01: 读取线圈状态02: 读取输入状态03: 读取保持寄存器04: 读取输入寄存器05: 强置单线圈06: 预置单寄存器15: 强置多线圈16: 预置多寄存器22: 位操作寄存器23: 读/写寄存器。

Modbus Poll 使用1)、安装注册:此软件不需安装,解压缩附件中Modbus Poll.rar,双击执行mbpoll.exe即可,如果是第一次运行,会弹出如下注册提示:此时,可以双击执行keygen.exe,如下图:程序中Name、Email、Reg Key顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项Reg Key根据前两项自动生成。

将此三项填入表1所示对话框中按“OK”按钮即可完成注册。

然后直接进入主窗口,如图3所示。

2)、主窗口:软件主窗口如图3所示:此时处于“No connection”未连接状态,如果只测试“04输出保持寄存器”,则可直接点击跳到第3.步,直接进行连接即可。

3)、参数设置:点击菜单“Setup”中“Slave Definition.. F2”进行参数设置,会弹出如图5对话框。

modbus-poll-快速入门到精通

modbus-poll-快速入门到精通

刚刚发布Modbus测试工具(Modbus Slave调试工具),不过已经是昨天了,今天开始发布Modbus测试工具(Modbus Master调试工具)。

做为Modbus主站,发送命令包,采集从站的数据,典型工具如:Modbus Poll。

Modbus Poll是Modbus主设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于监控、测试、调试Modbus通讯设备。

可以多个窗口中同时监控多个Modbus子设备!与Modbus Slave的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口数据。

支持以下Modbus协议:RTU ASCII Modbus TCP 寄存器和线圈的读写:同时操作(读/写)127个寄存器、同时操作(读/写)2000个输入/线圈支持的MODBUS功能码:01: 读取线圈状态02: 读取输入状态03: 读取保持寄存器04: 读取输入寄存器05: 强置单线圈06: 预置单寄存器15:强置多线圈16: 预置多寄存器22: 位操作寄存器23: 读/写寄存器。

Modbus Poll 使用1)、安装注册:此软件不需安装,解压缩附件中Modbus Poll.rar,双击执行mbpoll.exe即可,如果是第一次运行,会弹出如下注册提示:此时,可以双击执行keygen.exe,如下图:程序中Name、Email、Reg Key顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项Reg Key根据前两项自动生成。

将此三项填入表1所示对话框中按“OK”按钮即可完成注册。

然后直接进入主窗口,如图3所示。

2)、主窗口:软件主窗口如图3所示:此时处于“No connection”未连接状态,如果只测试“04输出保持寄存器”,则可直接点击跳到第3.步,直接进行连接即可。

3)、参数设置:点击菜单“Setup”中“Slave Definition.. F2”进行参数设置,会弹出如图5对话框。

Modbus_Simulator使用说明书

Modbus_Simulator使用说明书

Modbus_Simulator(Modbus RTU Slave软件仿真器)使用说明Modbus_Simulator为Modbus RTU Slave协议设备的仿真软件,主要可用于Modbus RTU Master设备的调试。

本软件为公益软件,不用注册,可自由使用。

使用中发现软件Bug时请告知我们改正!软件发布在本公司网站(),下载解压安装后,点击Modbus_Sim图标就可使用。

一、基本功能:本软件运行于Windows平台下,Modbus_Sim.exe执行后,弹出如下画面其中:寄存器地址项为要显示数据寄存器的初始地址。

[0,0]的前一个数据位是通信时所接收数据帧的次数值,后一个数据位是数据帧的长度值,方括号外的数据为接收数据帧值,本项参数仅用于串口正常通信状态的监测。

串口正常通讯时,接收帧次数值递增变化;“帧值”按通讯实际值变化。

如果这两项值不发生变化,表示通信口未连通!弹出的初始窗口画面中默认显示的数据为:03:Hold,数据格式为:16 Bits Dec。

1、软件支持多窗口显示,点击图标,可增加一幅数据窗口,如下图:2、本软件支持Modbus RTU全部四种数据寄存器的显示,分别为:Func_01:线圈状态(0x)Func_02:输入状态(1x)Func_03:保持寄存器(4x)Func_04:输入寄存器(3x)存器类型的选择也可在“显示”项中选取。

提供8种数据格式,分别为:16位二进制格式,数值范围:0~111111111111111116位十进制格式,数值范围:0~6553516位有符号十进制格式,数值范围:-32768~3276816位十六进制格式,数值范围:0~FFFF寄3、软件32位十进制格式,数值范围:0~429496729532位有符号十进制格式,数值范围:-2147483648~2147483648据格式的选择也可在“显示”项中选取。

4、支地址类型的选择也可在“显示”项中选取。

驱动篇之MODBUS通讯

驱动篇之MODBUS通讯

二、驱动篇之MODBUS通讯本例为MODUBS RTU、MODBUS TCP通讯以及快速建立标签。

如果没有真实的设备,可用模拟器,模拟器可在群文件里下载。

一、MODUBS RTU通讯测试前MODUBS RTU从站模拟器(ModSim32)设置:各设置5个数据。

如果测试只有一台PC,使用虚拟串口工具:从站用COM4,主站(IGX)用COM3。

IGX设置1、添加驱动:点击左侧任务栏“I/O驱动程序”建立一条MODBUS RTU驱动,地址为“COM3”.2、添加驱动:点击左侧则建好的驱动,增加一条设备:MODRTU,设置定时器、驱动器、地址,以及在右侧的驱动器属性里,设置地址偏移:-1(根据设备来设),通信参数,如波特率等(通信参数必须与从站一致)。

3、添加标签点:点击左侧任务栏刚建好的设备,添加通信点:DI、DO、HR、AI。

提示:在IGX的编辑窗口中,可以通过拖动属性栏来调整暂时所需的属性,便于设置,如图将“输入标签”拖动到“类型”的后面,并且将暂时不用的标签关闭(右键属性栏名称—选择分栏—取消“打勾”。

说明:IGX的MODBUS地址从1开始,并且省略掉数据格式地址类型,由数据“类型”和“输入标签”控制。

如图:如上图,MODBUS地址为40009,64位实数的点,在IGX即将地址设为9,数据类型为real64,输入标签默认为false即可。

注意:MODBUS数据格式和地址的关系,16位、32位、64位时的地址关系,如有不明白的用户自行百度搜索。

4、运行设置完成后保存且运行项目,在服务器软件的监视树型窗口查看数据,并且下设数据查看效果:一、MODUBS TCP通讯MODBUS TCP通讯与MODBUS RTU通讯时的物理层不同而已,无其它区别。

一般在PLC 与现场二次仪表通信使用MODBUS RTU,PLC与上位软件通信使用MODBUS TCP,保证更高的传输速度和质量。

模拟器设置:设置为TCP通信方式。

modbus仿真设备简单应用

modbus仿真设备简单应用

本Modbus仿真设备适用于以太网链路及串口链路的通讯,Modbus仿真设备可以与上位机软件KingSCADA放在同一台电脑上,但如果使用串口通讯方式还需要安装虚拟串口的软件或制作串口通讯电缆,因此,建议直接使用以太网链路方式通讯,下面简单介绍以太网方式通讯时Modbus仿真设备的设置。

1)找到“ModBustest精简版”文件夹里的“ModSim32.exe”文件,如图1.1。

图1.12)双击打开如下图所示界面,如图1.2。

图1.23)选择菜单“Connection”->“Connect”->“Modbus/TCP Svr”,如图1.3。

即Modbus 仿真设备作为ModbusTCPServer,使用以太网方式通讯。

图1.34)选择菜单“File”->“New”,新建ModbusTCP设备,如图1.4。

图1.45)Device Id:默认为1,即Modbus仿真设备的设备地址为1,同时,将Address设置为1,即寄存器从1地址开始,如图1.5。

图1.5仿真的是Modbus协议中03功能码的模拟量数据,寄存器地址从1开始。

图1.56)双击40001:<00000>,弹出如下图1.6所示对话框,在Value里赋值后,单击Update 按钮,就可以改变40001寄存器的数据,如图1.7。

图1.6图1.77)在图1.5中,单击Auto Simulation按钮,弹出如图1.8所示对话框,勾选Enabled,可产生仿真数据。

Simulation:可选仿真的数据类型,如Increment(自增),Decrement(自减),Random (随机);Change Interval:仿真数据变化的时间,以秒为单位;Step:步数,如Simulation选择的是Increment(自增),Change Interval设置的是5,Step 为1,那么每5秒数据加1递增。

Simulation Range:数据范围,Low为最小值,High为最大值。

modbus java 程序

modbus java 程序

modbus java 程序Modbus是一种通信协议,广泛应用于工业自动化领域。

它允许电子设备(如传感器、执行器和PLC等)通过串行通信或以太网进行通信,以实现数据的读取和控制。

Java作为一种通用的编程语言,也可以用于编写Modbus程序。

在Java中,有多种库可供开发人员使用,以便于实现Modbus通信功能。

本文将介绍如何使用Java编写Modbus程序,并提供一些示例代码。

首先,为了使用Modbus库,我们需要添加相应的依赖项。

一个受欢迎的Java Modbus库是jamod,你可以在Maven或Gradle配置文件中添加以下依赖项:```xml<dependency><groupId>net.wimpi</groupId><artifactId>jamod</artifactId><version>2.0.0</version></dependency>```接下来,我们需要创建一个Modbus主站(Master)或从站(Slave)的实例。

在Java中,可以使用ModbusMaster和ModbusSlave类来实现。

下面是一个使用jamod库创建Modbus主站的示例代码:```javaimport net.wimpi.modbus.Modbus;import net.wimpi.modbus.io.ModbusTCPTransaction;import net.wimpi.modbus.msg.ReadMultipleRegistersRequest;import net.wimpi.modbus.msg.ReadMultipleRegistersResponse;import .TCPMasterConnection;import .InetAddress;public class ModbusMasterExample {public static void main(String[] args) {try {// 创建TCPMasterConnection实例TCPMasterConnection connection = new TCPMasterConnection(InetAddress.getLocalHost());connection.setPort(502);connection.connect();// 创建ModbusTCPTransaction实例ModbusTCPTransaction transaction = new ModbusTCPTransaction(connection);// 创建ReadMultipleRegistersRequest实例ReadMultipleRegistersRequest request = new ReadMultipleRegistersRequest(0, 10);// 执行Modbus请求transaction.setRequest(request);transaction.execute();// 获取响应ReadMultipleRegistersResponse response = (ReadMultipleRegistersResponse) transaction.getResponse();// 处理响应数据if (response != null) {int[] values = response.getRegisterValues();for (int value : values) {System.out.println("Value: " + value);}}// 关闭连接connection.close();} catch (Exception e) {e.printStackTrace();}}}```在以上示例代码中,我们首先创建了一个TCPMasterConnection实例,并指定Modbus设备的IP地址和端口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Modbus主站模拟器的使用
1.1. 启动Modbus主站模拟器
点击工具软件文件夹中的Modbus主站模拟器可执行文件“”,随之打开主界面。

1.2. 通讯基础设置
点击菜单“Connection”,并点击“Connect”,在弹出的界面中配置通讯接口和通讯参数。

1.2.1.通讯接口选择串口
当通讯接口是串口时需要确定现在具体使用的是PC机的哪个串口。

一般情况PC机集成配置的串口为COM1,通过USB接口扩展的为COM3或COM4(具体机器会有所不同)。

通讯参数的选择要与从站(PLC)中的设置一致,包括通讯速率、数据长度、奇偶校验和停止位。

其中的“rotocol Selection”选择默认的“RTU”模式。

LK PLC的COM1串口做以下设置:
1.2.2.通讯接口选择网口
当通讯接口是网口时,“IP Address”中应填写从站的IP地址。

(主机即PC的IP在PC的网络连接中设置)。

“Service”(端口)固定为“502”。

其中的“rotocol Selection”选择默认的“RTU”模式。

从站IP
LK PLC的网口做以下设置(只需设置从站地址):
1.3. 选择通讯寄存器
1.3.1.填写从站地址
在监视区的“Device Id”填写从站地址,需要与PLC中设置的一致。

如上例中应填写“1”。

1.3.
2.选择寄存器类型
在监视区的“MODBUS Point Type”中选择通讯的Modbus寄存器类型。

其中“01”为读写开关量类型(DO),可对PLC中Q区和M
区置位或复位操作。

“02”为读开关量类型(DI),可读取PLC中I区和M区位
的状态。

“03”为读写WORD类型,可对PLC中Q区和M区进行字的
赋值操作。

“04”为读WORD类型,读取PLC中I区和M区字的数值。

1.3.3.填写通讯数据的起始Modbus地址
在监视区的“Address”中填写参与通讯的PLC变量地址(需要换算为Modbus地址)。

LK PLC换算格式见下表。

标识符类型PLC地址对应MODBUS
地址
寄存器类型
%QW WORD QW0,QW1,…QWm B,B=m+ 1
(1为模拟器的地址偏移)
03
%IW WORD
IW0,IW1,…IWm B,B=m+ m+ 1
(1为模拟器的地址偏移)
04
%MW WORD MW0,MW1,…MWm B,B=m+5000+1
(1为模拟器的地址偏移)
03
%QX BOOL QX0.0,QX0.1,…QX0.15,
QX1.0,QX1.1,QX1.15… B,B= m*16+n+1
(1为模拟器的地址偏移)
01
QXm.0,QXm.n ,QXm.15
%IX BOOL IX0.0,IX0.1,…IX0.15,
IX1.0,IX1.1,IX1.15… IXm.0,IXm.n ,IXm.15
B ,B= m*16+n+1
(1为模拟器的地址偏移)
02
%MX BOOL MX0.0,MX0.1,…MX0.15,MX1.0,MX1.1,MX1.15… MXm.0,MXm.n ,MXm.15
B ,B=
m*16+n+5000+1
(1为模拟器的地址偏移) 01
LM PLC 地址换算表格如下: 标识符
类型
PLC 地址
对应MODBUS
地址
寄存器类型 %QW WORD QW0,QW2,…QWm B ,B=m/2+1 (1为模拟器的地址偏移)
03 %IW WORD IW0,IW2,…IWm B ,B=m/2+1
(1
为模拟器的地址偏移)
04 %MW WORD MW0,MW2,…MWm B ,B=m/2+3000+1
(1为模拟器的地址偏移)
03 %QX BOOL QX0.0,QX0.1,…QX0.7,
QX1.0,QX1.1,QX1.7… QXm.0,QXm.n ,QXm.7 B ,B= m*8+n+1
(1为模拟器的地址偏移)
01
%IX BOOL IX0.0,IX0.1,…IX0.7,
IX1.0,IX1.1,IX1.7… IXm.0,IXm.n ,IXm.7 B ,B= m*8+n+1
(1为模拟器的地址偏移)
02
%MX BOOL MX0.0,MX0.1,…MX0.7,
MX1.0,MX1.1,MX1.7… MXm.0,MXm.n ,MXm.7
B ,B=
m*8+n+3000+1
(1为模拟器的地址偏移)
01
1.3.4. 设置通讯数据的个数
在监视区的“Length ”填写希望在数据显示区看到的数据个数。

1.4. 连接通讯
检查通讯电缆,确认线路没有问题后点击快捷键“”,连接通讯。

观察数据显示区的信息。

数据区最上方会显示通讯状态,如、
(未点击连接按钮,端口未使能)
(通讯超时失败)
(通讯正常)
1.5. 通讯包计数
在监视区还有通讯包的显示,如图:
其中,“Number of Polls”为主站发送的通讯包个数,“Valid Slave Responses”为从站回复的
通讯包个数。

通讯正常时,两个数据应同步增加。

点击“”可将以上两个数据清零,重新开始计数。

Modbus从站模拟器的使用
2.1. 启动Modbus从站模拟器
点击工具软件文件夹中的可执行文件“”,打开从站模拟器。

2.2. 通讯基础设置
点击菜单“Connection”,并点击“Connect”,在弹出的界面中配置通讯接口和通讯参数。

2.2.1通讯接口选择串口
当通讯接口是串口时,点击对应串口弹出设置窗口。

通讯参数的选择要与主站中的设置一致,包括通讯速率、数据长度、奇偶校验和停止位。

其中的“rotocol ”选择默认的“RTU”模式。

LK PLC的串口做以下设置:
2.2.2通讯接口选择网口
当通讯接口是网口时,无需参数设置。

2.3. 选择通讯寄存器
点击菜单“File”中的“New”,弹出数据界面。

其中各项含义与主站模拟器状态相同。

通讯结果没有明确显示,需通过查看寄存器的数值来判断。

相关文档
最新文档