浅谈S7-300 CPU集成PN口配置的Modbus TCP通讯技术

发布时间:2024-03-06  

2.配置S7-300单站系统通过CPU集成PN口作为Client进行Modbus TCP通讯

下面以S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为Client,Modbus Slave作为Server进行Modbus TCP通讯。


2.1硬件设备及软件

本例中所用的硬件设备如下表:

名称 数量 订货号
S7-300电源模块PS 307 10A 1 6ES7307-1KA02-0AA0
S7-300 CPU317-2PN/DP 1 6ES7317-2EK14-0AB0(V3.2)
网线 若干
笔记本电脑 1

 

所用到软件如下表:

 

名称 订货号
STEP7 V16 Update3 组态编程软件
Modbus Slave免授权版本 可从网上免费获取

 

2.2 S7-300单站系统与Modbus Slave软件组态

打开TIA软件,新建一个工程项目文件,命名为“PN_MODBUS TCP Client”, 在项目下插入一个S7-300站,如下图1所示: 

0aa95a00-6c1d-11ee-939d-92fbcf53809c.png

图1 新建S7-300 Station

打开设备视图,修改CPU的IP地址,本例中将CPU的PN口IP地址设为192.168.0.220,如下图17所示:

0ace6886-6c1d-11ee-939d-92fbcf53809c.png

图2 设备视图中设置CPU的IP地址

2.3组态工艺对象

①选择添加工艺对象“Modbus”---"其他"---“MODBUS TCP”---"MB_PN_PARAM"

0ae53dae-6c1d-11ee-939d-92fbcf53809c.png

图3 新增工艺对象

②设置“连接设置”

连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数

连接建立:PLC做MODBUS TCP客户端,选择主动。

远程IP地址:图中的IP地址(192.168.0.228)为 笔记本电脑的IP地址

本地设备ID:选择PLC的设备类型

本地端口:作为客户端,可不指定固定端口

伙伴端口:图中502端口为Modbus Slave的端口号

0b0714b0-6c1d-11ee-939d-92fbcf53809c.png

图4 组态工艺对象

③Modbus 设置“内部”

0b0e875e-6c1d-11ee-939d-92fbcf53809c.png

图5 组态工艺对象

③Modbus 设置“数据区域”

下图中设置了4个Modbus数据区域

0b326db8-6c1d-11ee-939d-92fbcf53809c.png

图6 组态工艺对象

2.4根据工艺对象中创建的数据区域添加数据块

根据步骤3.3工艺对象中设置的数据区域,添加四个数据块,如下图所示

0b44d390-6c1d-11ee-939d-92fbcf53809c.png

图7 创建数据块

0b5e1756-6c1d-11ee-939d-92fbcf53809c.png

图8 创建存放MODBUS 线圈数据的数据块

0b73c524-6c1d-11ee-939d-92fbcf53809c.png

图9 创建存放MODBUS 数字量输入类型的数据块

0b85d2aa-6c1d-11ee-939d-92fbcf53809c.png

图10 创建存放MODBUS 保持寄存器数据的数据块

0b8b96cc-6c1d-11ee-939d-92fbcf53809c.png

图11 创建存放MODBUS 输入寄存器据的数据块

2.5创建具有可用于授权的注册表项的数据块

创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:

0ba37d14-6c1d-11ee-939d-92fbcf53809c.png

图12 创建存放授权码的数据块

授权密钥的获取方法,参考//www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html

2.6调用OB121

由于在获取授权密钥前,“MODBUSPN”指令是无授权状态,会使CPU报错而停机。而为了读取CPU 的“IDENT_CODE”码,需要CPU运行起来,则必须添加编程错误组织块OB121,如下图所示:

0bc00178-6c1d-11ee-939d-92fbcf53809c.png

图13 调用OB121

2.7调用通信指令

调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。

为了在通信故障时查找原因,编写程序段2捕获错误代码。

0bda45ba-6c1d-11ee-939d-92fbcf53809c.png

图14 调用“MODBUSPN”指令

2.8初始化指令

创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如图所示:

0bf251dc-6c1d-11ee-939d-92fbcf53809c.png

图15 初始化“MODBUSPN”指令

2.9通信测试

示例1:客户端读取服务器【 数字量输入】,偏移量3,长度为2的数据

0bfd2bd4-6c1d-11ee-939d-92fbcf53809c.png

图16 通信测试示例

示例2:客户端读取服务器【输入寄存器】,偏移量0,长度为3的数据

0c2ae84e-6c1d-11ee-939d-92fbcf53809c.png

图17 通信测试示例

示例3:客户端读取服务器【线圈寄存器】,偏移量0,长度为8的数据

0c3588a8-6c1d-11ee-939d-92fbcf53809c.png

图18 通信测试示例

示例4:客户端读取服务器【保持寄存器】,偏移量0,长度为3的数据

0c4e4794-6c1d-11ee-939d-92fbcf53809c.png

图19 通信测试示例

示例5:客户端写入数据到服务器【保持寄存器】,偏移量5,长度为5的数据

0c5b1e24-6c1d-11ee-939d-92fbcf53809c.png

图20 通信测试示例

示例6:客户端写入数据到服务器【线圈寄存器】,偏移量0,长度为8的数据

0c6588c8-6c1d-11ee-939d-92fbcf53809c.png

图21 通信测试示例

3.配置S7-300单站系统通过CPU集成PN口作为Server进行Modbus TCP通讯

下面以S7-300单站系统及ModScan32软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为Server,ModScan32作为Client进行Modbus TCP通讯。

3.1例子中使用的硬件设备及软件

本例中所用的硬件设备如下表:

 

名称 数量 订货号
S7-300电源模块PS 307 10A 1 6ES7307-1KA02-0AA0
S7-300 CPU317-2PN/DP 1 6ES7317-2EK14-0AB0(V3.2)
网线 若干
笔记本电脑 1

 

所用到软件如下表:

 

名称 订货号
STEP7 V16 Update3 组态编程软件
ModScan32 免授权版本 可从网上免费获取

 

3.2 S7-300单站系统与ModScan32软件组态

打开TIA软件,新建一个工程项目文件,命名为“PN_MODBUS TCP Server”, 在项目下插入一个S7-300站,如下图所示: 

0aa95a00-6c1d-11ee-939d-92fbcf53809c.png

图22 新建S7-300 Station

打开设备视图,修改CPU的IP地址,本例中将CPU的PN口IP地址设为192.168.0.220,如下图17所示:

0ace6886-6c1d-11ee-939d-92fbcf53809c.png

图23 设备视图中设置CPU的IP地址

3.3组态工艺对象

①新增工艺对象,选择“Modbus”---"其他"---“MODBUS_TCP”---"MB_PN_PARAM"

0ae53dae-6c1d-11ee-939d-92fbcf53809c.png

图24 新增工艺对象

②设置“连接设置”

连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数

连接建立:PLC做MODBUS TCP服务器,选择被动。

远程IP地址:可以指定或者不指定连接伙伴的IP地址。

本地设备ID:选择PLC的设备类型

本地端口:指定固定端口

伙伴端口:可不指定

0cb958f4-6c1d-11ee-939d-92fbcf53809c.png

图25 组态工艺对象

③Modbus 设置“内部”

0cde1ad6-6c1d-11ee-939d-92fbcf53809c.png

图26 组态工艺对象

④Modbus 设置“数据区域”

下图中设置了4个Modbus数据区域

0cf9821c-6c1d-11ee-939d-92fbcf53809c.png

图27 组态工艺对象

3.4根据工艺对象中创建的数据区域添加数据块

根据步骤3.3工艺对象中设置的数据区域,添加四个数据块,如下图所示

0b44d390-6c1d-11ee-939d-92fbcf53809c.png

图28 创建数据块

0b5e1756-6c1d-11ee-939d-92fbcf53809c.png

图29 创建存放MODBUS 线圈数据的数据块

0b73c524-6c1d-11ee-939d-92fbcf53809c.png

图30 创建存放MODBUS 数字量输入类型的数据块

0b85d2aa-6c1d-11ee-939d-92fbcf53809c.png

图31 创建存放MODBUS 保持寄存器数据的数据块

0b8b96cc-6c1d-11ee-939d-92fbcf53809c.png

图32 创建存放MODBUS 输入寄存器据的数据块

3.5创建具有可用于授权的注册表项的数据块

创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:

0ba37d14-6c1d-11ee-939d-92fbcf53809c.png

图33 创建存放授权码的数据块

授权密钥的获取方法,参考//www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html

3.6调用OB121

由于在获取授权密钥前,“MODBUSPN”指令是无授权状态,会使CPU报错而停机。而为了读取CPU 的“IDENT_CODE”码,需要CPU运行起来,则必须添加编程错误组织块OB121,如下图所示:

0bc00178-6c1d-11ee-939d-92fbcf53809c.png

图34 OB121

3.7调用通信指令

调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。

为了在通信故障时查找原因,编写程序段2捕获错误代码。

0bda45ba-6c1d-11ee-939d-92fbcf53809c.png

图35 调用“MODBUSPN”指令

3.8初始化指令

创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如下图所示:

0bf251dc-6c1d-11ee-939d-92fbcf53809c.png

图36 初始化“MODBUSPN”指令

3.9建立和客户端的连接

按照如下设置,使能服务器端,并使用ModScan32建立连接

0dba4718-6c1d-11ee-939d-92fbcf53809c.png

图37 建立和客户端的连接

3.9通信测试

示例1:客户端读写服务器【 线圈寄存器 】,偏移量0,长度为10的数据

0dc4f974-6c1d-11ee-939d-92fbcf53809c.png

图38 通信测试示例

示例2:客户端读取服务器【 数字量输入寄存器 】,偏移量0,长度为10的数据

0de5d7f2-6c1d-11ee-939d-92fbcf53809c.png

图39 通信测试示例

示例3:客户端读写服务器【 保持寄存器 】,偏移量0,长度为10的数据

0dfdd5dc-6c1d-11ee-939d-92fbcf53809c.png

图40 通信测试示例

示例4:客户端读取服务器【 模拟量输入寄存器 】,偏移量0,长度为10的数据

0e17dcb6-6c1d-11ee-939d-92fbcf53809c.png

图41 通信测试示例


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    MPI转以太网模块在施耐德Vijeo_Citect 中的配置方式;西门子 PLC(S7200,S7300,S7400)连接施耐德组态软件 Vijeo_Citect,通过兴达易控MPI转以太网模块......
    西门子1200 PLC扩展模块安装和软件组态; 常用的梯形图编程指令基本上我们都已经学习好了,今天我们一起来学习扩展模块安装和软件组态,今天主要是以软件组态为主,下次我会用一个扩展模块......
    200PPI转以太网与易控modbusTCP客户端通信配置;西门子200PLC与易控INSPEC软件通过以太网连接西门子S7200系列PLC利用兴达易控PPI-ETH-XD1.0通讯模块为PLC提供......
    浅谈西门子plc200、300、400通讯技术;(一)西门子200plc使用MPI协议与组态王进行通讯时需要哪些设置? 1)在运行组态王的机器上需要......
    S7-300/400PLC专用组态编程软件为经典STEP7,上位组态软件为WinCC,相对于TIA博途软件,某些操作显得繁琐(例如对于各个程序块需要每个单独存盘,当有语法错误时,则无......
    西门子1200与300的九大区别;一、硬件的区别 在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和多三个通信模块。以S7-300 CPU313C和S7......
    和时钟存储器开启。 3、按需要添加其他模块,分配好地址。 二、组态一个HMI设备 1、在项目树中,找到,添加新设备,选择HMI型号,确定。 2、在“设备和网络”项目的“网络视图”中,用鼠标连接PLC与HMI的网......
    一排端子是信号输入端子和供电端子。 下面一排段子是输出端子和给扩展模块的供电端子。 左下方是RS485接口。 左右两面还有一些标识信息,如订货号、FS号等。 二、 PLC入门 PLC是一......
    机械寿命的限制。 3. S7-200 SMART CPU数字量输出可以接漏型的设备吗? 不可以,S7-200 SMART CPU 本体和扩展模块的DO端都只能接源型24V类型的设备,即集......
    会自动跳转到设备视图。接下来我们要做的是在主机架上依次插入一个16通道的数字量输出扩展模块和一个数字量输入扩展模块。 首先,添加DQ模块:在“设备视图”右侧的产品目录中,依次点击“DQ”、“DQ 16*24VDC/0.5A......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>