西门子做modbus从站与MODSCAN通讯
MODBUS调试工具(modscan32)使用说明-MODBUS调试工具(modscan3。。。

MODBUS调试⼯具(modscan32)使⽤说明-MODBUS调试⼯具(modscan3。
其它⾏业占存:2.19MB 时间:2021-11-01软件介绍: MODBUS调试⼯具(modscan32)官⽅版是款适合电脑中使⽤的MODBUS调试助⼿。
MODBUS调试⼯具(modscan3... 使⽤MODBUS调试⼯具(modscan32)如何操作使⽤呢?在平时很少⽤到,想必有的⽹友还不太了解的,为此,今⽇⼩编带来的这篇⽂章就为⼤伙分享了MODBUS调试⼯具(modscan32)使⽤说明,⼀起来看看吧。
1.⾸先要保证外部连接线正确连接好,确认数据的连接正常,搞定了硬件,下⾯进⼊到软件界⾯操作. 第⼀步: 单击菜单栏的Connenction --- ”connect”出现 第⼆步: 单击Rotocol Selection进⼊下⼀步 第三步:通讯参数设定:进⾏下⾯的设置操作.单击后出现的界⾯填写如下图所⽰的数据 2.Modbus的类型选择: 在Modbus Point Type就是要读取的寄存器区: “01 : COIL STATUS ” 指1号命令DO寄存器 “02 : INPUT STATUS ” 指2号命令DI寄存器 “03 : HOLDING REGUSTER ” 指3号命令保存寄存器 “04 : INPUT REGISTER ” 指4号命令输⼊寄存器 按照硬件产品说明书指导选择哪⼀种类型。
3.PC显⽰数据设置: 从左到右对应看:⼆进制、⼋进制、⼗六进制 4.其它功能菜单项: 从左到右对应看:新建、打开、保存、连接、断开、数据定义等。
所有参数设置完成后单击OK,如果对应串⼝有数据输⼊,就能获取数据。
以上就是⼩编给⼤家带来的全部内容,⼤家都学会了吗?。
西门子PLC的“ModbusRTU通讯”和“轮询”

西门子PLC的“ModbusRTU通讯”和“轮询”Modbus是PLC应用中常用的通讯手段,轮询是在进行一个控制器连接多个从站的通讯时常用的编程手段,由于ST语言在数据处理上的优势,此方法变得更为简单。
下面以西门子S7 1214C PLC的ModbusRTU通讯为例,展现ST语言下的modbus通讯和轮询。
硬件连接要准备的硬件和软件:1.西门子PLC 1214C;2.通讯板CB1241;B转RS485转换器;4.Modscan2/Modsim32电脑模拟软件模拟主/从站,5.SPU(serial port Utility),监视通讯报文。
PLC作为主站,使用软件Modsim32模拟从站,使用两芯线(最好是带屏蔽双绞线)进行连接:硬件连接将通讯板的AB两端与转换器的AB两端进行连接,要注意AB两端区分正负极,反接不会烧坏设备,但是无法正常通讯。
编写程序1.设备组态在博图软件中配置西门子PLC和通讯板。
modbus通讯需要设置波特率、数据位、停止位和校验位等通讯参数,在博图中的设备组态中设置此参数,主从站设置一致即可通讯。
通讯参数设置波特率9600,数据位8位,停止位1位,无校验,在PLC离线模式下下载硬件组态。
下载组态信息2.调用modbus功能块西门子的通讯一般都需要调用系统功能块,在“指令”-“通信”-“通信处理器”下可以找到modbus通讯功能块:通讯功能块可以看到这里提供两套modbus通讯模块,这两套都可以使用(暂不清楚具体的区别),本文选用的是下面的版本较低的模块。
新建程序段,将配置模块MB_COMM_LOAD和主站模块MB_MASTER拖入程序中:调用功能块功能块调用后要对必要的引脚进行赋值,各个引脚的功能可以按F1查看,建立一个DB数据块,声明一些变量连接功能块的引脚:声明变量上面声明了两个容量为5的字数组,用于数据的发送和接受,这个容量可以根据需求任意设置。
然后将这写变量写入模块引脚:模块赋值配置模块MB_COMM_LOAD的触发REQ只需要在连接时触发一次啊,因此直接将系统内置的变量“firstscan”写入即可,上电后执行一次。
modsim32和modscan32两种modbus调试工具使用说明

modsim32和modscan32两种modbus调试工具使用说明精品文档--------------------------精品文档,可以编辑修改,等待你的下载,管理,教育文档---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------ModSim32和ModScan32两种Modbus调试工具使用说明:Modbus采用主从式通信,日常使用较多的是Modbus RTU和Modbus TCP/IP两种协议。
最常用的Modbus通信调试工具就是ModScan32和ModSim32。
ModScan32用来模拟主设备。
它可以发送指令到从机设备(使用Modbus协议的智能仪表终端设备)中,从机响应之后,就可以在界面上返回相应寄存器的数据。
ModSim32用来模拟从设备。
它可以模拟采用ModBus协议的智能终端。
主要用在HMI组态开发中,通过ModSim32改变寄存器状态的值,模拟智能终端的状态变化,来观察HMI画面的变化。
使得画面的变量配置正确。
ModSim32 和ModScan32可以在同一台电脑中运行,用来模拟采用了Modbus协议的设备的数据收发过程,方法如下:(1)ModSim32的设置ModSim32几乎不需要设置,启动ModSim32后,在菜单栏中选择Connection->Connect->Modbus/TCP Svr即可,如图1所示:图1 弹出图2对话框,端口为默认的502,点击OK即可:--------------------------精品文档,可以编辑修改,等待你的下载,管理,教育文档---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------精品文档--------------------------精品文档,可以编辑修改,等待你的下载,管理,教育文档---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------图2(2)ModScan32的设置启动ModScan32后,在菜单栏中选择Connection->Connect,弹出如图4对话框,在Connect下边选择Remote TCP/IP Server连接方式,IP Address处填写本机IP地址,Service处为默认的502即可,点击OK。
s7-300 cp341 从站 通讯配置培训

2.8 写功能的限制
写访问的 SIMATIC 限制(FC 05、 06、 15 和 16) 对于写功能代码 05、 06、 15 和 16,可以 禁用或限 制访问相关 SIMATIC 存储区。 可以使用参数分配工具在 MODBUS 主站系统上指定启用写 访问的区域。 如果主站试图访问该启用区域之外的 SIMATIC 存储区,则访问会被拒绝。
2.7 转换寄存器功能的 MODBUS 地址(只读)
功能代码 F04 面向寄存器的功能代码 04 可以对 SIMATIC 存储区数据块进行只 读访问。 这种访问的工作方式和功能代码 03、 06 和 16 相同。 功能代码 04 具有自己的基本 DB 号,可以使用参数分配工具进行 自由参数分配。 这样可 以选择第二个包含 128 个 BD 的独立 区域。 然而,对这些 DB 只能进行只读访问;不能对其写入。
北京碧海舟腐蚀防护工业股份有限公司碧海舟北京石油化工设备有限公司西门子s7300plccp341modbus从站通讯配置目录cp341端口cp341硬件组态设置参数21软件要求22打开step7软件进入硬件配置23modbus从站协议24位功能的modbus地址转换读写25位功能的modbus地址转换只读26转换寄存器功能的modbus地址读写27转换寄存器功能的modbus地址只读28写功能的限制29rs422485x27接口cp341软件程序配置modscan32通讯测试软件备注
换算公式(整数类型) DCS内部地址 –1 x 2 = PLC 内部地址 PLC内部地址 / 2 + 1 = DCS 内部地址 例如: DB40.DBW512 ( 512 / 2 +1 = 257 ) 对应地址 40257
4. ModScan32通讯测试软件
ABB 900F和西门子1200 1500 ModbusTCP通讯测试

ABB AC900F和S7-1500/1200 Modbus TCP通讯测试公司:烟台东润科技股份有限公司一、 测试准备1.ABB AC900F CPU 1台2.S7-1200 CPU 2台3.Freelance2016 SP1组态软件4.TIA V14软件5.modscan64和modsim64(Modbus Slave)调试工具注:1)Modbus TCP通讯区分为服务器和客户机,没有主从之分。
2)客户机主动请求数据,服务器进行响应。
3)modscan64为服务器测试工具,Modbus Slave和modsim64为客户机测试工具;4)本测试过程同时适用于西门子S7-1500 PLC控制系统。
二、 AC900F使用Modbus TCP从站(服务器)和S7-1200使用MB_CLIENT(客户机)进行Modbus TCP通讯(一)和S7-1200系统进行Modbus TCP通讯,ABB Freelance2016 SP1配置组态1.ABB Freelance2016 SP1软件的安装及基本组态可以参考ABB Freelance2016的基础教程,硬件组态添加Modbus TCP通讯接口2.Modbus TCP服务器端配置界面,定义接口名称,服务器端口默认502,勾选使用访问控制,访问控制界面设置客户机端的IP地址172.16.1.21。
3.程序块内程序,添加一个8回路读程序块,以此为例定义好功能块名称和功能块连接的接口名称(F2选择通讯接口名称),起始地址为Modbus标准地址,0相对应40001,寄存器数量为通讯数据量,我们将测试对40001~40008的地址进行读测试。
测试程序4.说明:1)ABB Freelance2016只能添加一个Modbus TCP从站(服务器),每个Modbus TCP从站可以设置10个连接的客户机。
2)每个客户机数据通讯以寄存器地址进行区分。
(二)和S7-1200系统进行Modbus TCP通讯,S7-1200配置组态1.添加新设备2.定义设备网络和IP地址3.核对硬件标识符为644.CPU属性-保护-连接机制,勾选允许访问5.激活系统内置定时脉冲6.添加全局通讯接口数据块DB1,名称TCON_1,新建变量TCON,数据类型TCON_IP_V47.添加全局数据块DB2,名称:数据交换,去除优化块的访问,编译后出现绝对地址;8.在OB1组织块编写通讯主程序,添加MB_CLIENT功能块MB_CLIENT的参数含义如下表:9.说明:1)MB_CLIENT块使用中,STATUS状态代码可以实时判断目前的通讯状态,可将代码采集到人机界面实时判断通讯状态;2)修改通讯接口数据时,出现8200故障代码,需要将CPU进行停止/启动操作或断电重启方可恢复;3)STATUS状态代码定义一栏:三、 AC900F使用Modbus TCP主站(客户机)和S7-1200使用MB_SERVER(服务器)进行Modbus TCP通讯(一)和S7-1200系统进行Modbus TCP通讯,S7-1200配置组态1.添加新设备2.定义设备网络和IP地址3.核对硬件标识符为644.CPU属性-保护-连接机制,勾选允许访问5.添加全局通讯接口数据块DB1,名称TCON_1,新建变量TCON,数据类型TCON_IP_V46.添加全局数据块DB2,名称:数据交换,去除优化块的访问,编译后出现绝对地址;7.在OB1组织块编写通讯主程序,添加MB_SERVER功能块MB_CLIENT的参数含义如下表:8.通讯测试客户机采用Modscan64软件测试,Modscan64做 Modbus TCP Client 测试软件,是第三方软件。
ModScan(主站)与200PLC(从站)的Modbus通讯

ModScan(主站)与200PLC(从站)的Modbus通讯软件配置:ModScan测试软件、Step7-MicroWin V4.0.6.35编程软件硬件配置:电脑、西门子200PLC(CPU 224XP CN REL 02.01)、PPI编程电缆、USB-TO-Serial 电缆、研华ADAM4520 RS232/RS422/RS485模块准备:焊接RS485通讯电缆一根(Date+→DB9 3引脚、Date-→DB9 8引脚)、RS485通讯电缆连接200PLC的Port0端口、安装modbus库文件1.打开Step7-MicroWin V4.0.6.35编程软件,设置库存储区;(注意:在“库存储区分配”对话框中输入库存储区的起始地址,注意避免该地址和程序中已经采用或准备采用的其它地址重合。
规定Modbus 保持寄存器区从VB0 开始(HoldStart =VB0),并且保持寄存器为1000个字(MaxHold=1000),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB0~VB1999共2000个字节。
因此分配库指令保留数据区时至少要从VB2000开始。
当然保持区不一定要从VB0开始。
)2.在主程序中添加Modbus Slave Port0从站块(MBUS_INIT ,MBUS_SLAVE )库文件•西门子Modbus 从站协议库包括两条指令:MBUS_INIT 指令和MBUS_SLAVE 指令。
•MBUS_INIT 指令用于启用和初始化或禁止Modbus通讯。
•MBUS_SLAVE 指令用于为Modbus主设备发出的请求服务。
•MBUS_INIT 指令用于启用和初始化或禁止Modbus从站通讯。
在使用MBUS_SLAVE 指令之前,必须正确执行MBUS_INIT 指令。
指令完成后立即设定“完成”位,才能继续执行下一条指令。
MBUS_INIT 指令说明:•EN:指令使能位。
西门子PLC Modbus通讯

1.Modbus RTU主站1.1 Modbus RTU 主站指令库1.2 Modbus RTU 主站功能编程1.3 关于 Modbus RTU 主站协议及地址1.4 Modbus RTU 主站常问问题1.5 Modbus RTU主站例程2.Modbus RTU从站2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议2.2 编程基本步骤:2.3 Modbus RTU 从站地址与S7-200的地址对应2.4 Modbus RTU 从站指令库支持的功能码2.6Modbus RTU从站例程2.7 Modbus RTU 从站常见问题3.STEP 7-Micro/WIN 的标准指令库3.1 分配库指令数据区1.Modbus RTU主站1.1 Modbus RTU 主站指令库西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。
图 1. 西门子标准指令库(Micro/WIN V4.0 SP5)Modbus指令库注意● 1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port 0 和 Port 1 有效。
该指令库将设置通信口工作在自由口模式下。
● 2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
● 3. Modbus RTU 主站库对CPU的版本有要求。
CPU 的版本必须为 2.00 或者 2.01(即订货号为6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。
使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器。
要使用 Modbus RTU 主站指令库,须遵循下列步骤:● 1.安装西门子标准指令库● 2.按照要求编写用户程序调用 Modubs RTU 主站指令库1.2 Modbus RTU 主站功能编程1. 调用 Modbus RTU 主站初始化和控制子程序使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:图 2. 用 SM0.0 调用 Modbus RTU 主站初始化与控制子程序各参数意义如下:a. EN 使能:必须保证每一扫描周期都被使能(使用 SM0.0)b. Mode 模式:为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议c. Baud 波特率:支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。
S7-200PLC MUDBUS从站通信

S7-200 MODBUS RTU 从站通讯CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为ModbusRTU从站。
此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
如果想在S7-200 CPU之间、或者其他支持Modbus RTU的设备使用Modbus RTU 协议通信,需要由有S7-200CPU做Modbus主站。
S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
详情请参考《S7-200系统手册》之相关章节。
要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP7-Micro/WIN32 V3.2 Instruction Library(指令库)。
ModbusRTU 功能是通过指令库中预先编好的程序功能块实现的。
ModbusRTU从站指令库只支持CPU上的通信0口(Port0)。
基本步骤:1.检查Micro/WIN的软件版本,应当是STEP7-Micro/WIN V3.2以上版本。
2.检查Micro/WIN的指令树中是否存在ModbusRTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32V3.2的Instruction Library(指令库)软件包;图1. 指令树中的库指令3.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;图2. 调用Modbus RTU通信指令库图中参数意义如下:1.模式选择:启动/停止Modbus,1=启动;0=停止2.从站地址:Modbus从站地址,取值1~2473.波特率:可选1200,2400,4800,9600,19200,38400,57600,1152004.奇偶校验:0=无校验;1=奇校验;2=偶校验5.延时:附加字符间延时,缺省值为06.最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为1287.最大AI字数:参与通信的最大AI通道数,可为16或328.最大保持寄存器区:参与通信的V存储区字(VW)9.保持寄存器区起始地址:以&VBx指定(间接寻址方式)10.初始化完成标志:成功初始化后置111.初始化错误代码12.Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西门子200做modbus从站与MODSCAN32通讯
一.准备工作:
1.西门子200编程软件: STEP 7 MicroWIN SP9
2.西门子200PLC一个:CPU224XP
3.编程电缆一条:USB-PPI
4.串口软件:
二.modbus通讯概念:
西门子S7200做Modbus从站需要使用MBUS_INIT、MBUS_SLAVE即可。
MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。
在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。
指令完成后立即设定"完成"位,才能继续执行下一条指令。
在每次扫描且EN输入打开时执行该指令。
应当在每次通讯状态改变时执行MBUS_INIT指令。
因此,EN输入应当通过一个边缘检测元素用脉冲打开,或者仅在首次扫描时执行。
"模式"输入数值选择通讯协议:输入数值1将端口0指定给Modbus协议并启用协议;将输入数值0指定给PPI,并禁用Modbus协议。
"波特"参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200。
"地址"参数将地址设为1和247之间(包括1和247)的数值。
"校验"参数被设为与Modbus主设备校验相匹配。
可接受的数值为:
*0-无校验
*1-奇数校验
*2-偶数校验
"时延"参数通过将指定的毫秒数增加至标准Modbus信息超时的方法延长标准Modbus信息结束超时条件。
该参数的典型数值在有线网络上应为0。
如果您在使用带有纠错功能的调制解调器,将时延设为50至100毫秒的数值。
如果您在使用扩展频谱无线电,将时延设为10至100毫秒的数值。
"时延"数值可以是0至32767毫秒。
MaxIQ参数将供Modbus地址00xxxx和01xxxx使用的I和Q点数设为0至128之间的数值。
数值0禁止所有向输入和输出的读取。
建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。
MaxAI参数将供Modbus地址03xxx使用的字输入(AI)寄存器数目设为0至32之间的数值。
数值0禁止模拟输入的读数。
建议使用的MaxAI数值如下,这些数值可允许存取所有的S7-200模拟输入:
*0用于CPU 221
*16用于CPU 222
*32用于CPU 224、226和226XM
MaxHold参数设定供Modbus地址04xxx使用的V内存中的字保持寄存器数目。
例如,为了允许主设备存取2000个字节的V内存,将MaxHold设为1000个字的数值(保持寄存器)。
HoldStart参数是V内存中保持寄存器的起始地址。
该数值一般被设为VB0,因此HoldStart 参数被设为&VB0(VB0地址)。
其他V内存地址可指定为保持寄存器的起始地址,以便在项
目的其他地方使用VB0。
Modbus主设备可存取V内存MaxHold个字数,从HoldStart开始。
MBUS_INIT指令完成时,"完成"输出打开。
"错误"输出字节包含执行指令的结果。
请参阅Modbus从属协议执行错误代码中可能因执行指令而产生的错误条件。
MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。
在每次扫描且EN输入开启时执行该指令。
MBUS_SLAVE 指令无输入参数。
当MBUS_SLAVE指令对Modbus请求作出应答时,"完成"输出打开。
如果没有需要服务的请求时,"完成"输出关闭。
"错误"输出包含执行该指令的结果。
该输出只有在"完成"打开时才有效。
如果"完成"关闭,错误参数不会改变。
请参阅Modbus从属协议执行错误代码中可能因执行该指令而导致的错误条件。
错误代码说明
0无错误
1内存范围错误
2非法波特率或校验
3非法从属地址
4非法Modbus参数值
5保持寄存器与Modbus从属符号重叠
6收到校验错误
7收到CRC错误
8非法功能请求/功能不受支持
9请求中的非法内存地址
10从属功能未启用
三:程序编写
PLC地址=(modbus地址-1)*2;如modbus地址为40002,则PLC地址为VW1002。
四:设置库存储区
库存储区起始地址为:HoldStart+(MaxHold*2);此处库存储区地址应为VB1000+(20*2)=VB1040; 库存储区不应小于VB1040,否则会导致通讯失败。
五:建立通讯连接
设置通讯参数:与PLC初始化从站协议一致。
测试成功。