天拓分享:关于S7-1200和S7-300之间的通信

2023-11-10

1、S7-1200 的PROFINET 通信口

S7-1200 CPU 本体上集成了一个 PROFINET 通信口,支持以太网和基于 TCP/IP 的通信标准。使用这个通信口可以实现 S7-1200 CPU 与编程设备的通信,与hmi触摸屏的通信,以及与其它 CPU 之间的通信。这个PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。

2、S7-1200支持的协议和最大的连接资源

S7-1200 CPU 的PROFINET 通信口支持以下通信协议及服务

TCP

ISO on TCP ( RCF 1006 )

S7 通信 (服务器端)

通信口所支持的最大通信连接数

S7-1200 CPU PROFINET 通信口所支持的最大通信连接数如下:

3个连接用于HMI (触摸屏) 与 CPU 的通信

1个连接用于编程设备(PG)与 CPU 的通信

8个连接用于Open IE ( TCP, ISO on TCP) 的编程通信,使用T-block指令来实现

3个连接用于S7 通信的服务器端连接,可以实现与S7-200,S7-300以及S7-400的以太网S7通信

S7-1200 CPU可以同时支持以上15个通信连接,这些连接数是固定不变的,不能自定义。

TCP(Transport Connection Protocol)

TCP是由 RFC 793描述的标准协议,可以在通信对象间建立稳定、安全的服务连接。如果数据用TCP协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。在以数据流的方式传输时接收方不知道一 条信息的结束和下一条信息的开始。因此,发送方必须确定信息的结构让接收方能够识别 。在多数情况下TCP应用了IP (Internet protocol) ,也就是“TCP/IP 协议”, 它位于 ISO-OSI 参考模型的第四层。

协议的特点:

与硬件绑定的高效通信协议

适合传输中等到大量的数据 (<=8192 bytes)

为大多数设备应用提供

– 错误恢复

– 流控制

– 可靠性

一个基于连接的协议

可以灵活的与支持TCP协议的第三方设备通信

具有路由兼容性

只可使用静态数据长度

有确认机制

使用端口号进行应用寻址

大多数应用协议,如TELNET、FTP都使用TCP

使用 SEND/RECEIVE 编程接口进行数据管理需要编程来实现

3、硬件需求和软件需求

硬件:

① S7-1200 CPU

② S7-300 CPU + CP343-1(支持S7 Client)

③ PC(带以太网卡)

④ TP以太网电缆

软件:

① STEP 7 Basic V10.5

② STEP 7 V5.4

一、ISO on TCP 通信

S7-1200 CPU 与S7-300/400 之间通过ISO on TCP 通信,需要在双方都建立连接,连接对象选择“Unspecified”。

所完成的通信任务为:

① S7-1200将DB3里的100个字节发送到S7-300的DB2中

② S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。

1、S7-1200 CPU 的组态编程

组态编程过程与 S7-1200 CPU 之间的通信基本相似,这里简单描述一下步骤:

① 使用STEP 7 Basic V10.5 软件新建一个项目

在STEP 7 Basic 的“Portal View”中选择 “Create new project”创建一个新项目

② 添加新设备

然后进入“Project view”,在“Project tree”下双击“Add new device”,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为 plc_1。

③ 为 PROFINET 通信口分配以太网地址

在“Device View”中点击 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在 “Ethernet addresses”下分配IP 地址为 192.168.0.1 ,子网掩码为255.255.255.0。

④ 在 S7-1200 CPU 中调用“TSEND_C”通信指令并配置连接参数和块参数

在主程序中调用发送通信指令,进入“Project tree” > “ PLC_1”>“Program blocks”>“Main”主程序中,从右侧窗口“Instructions”> “Extended Instructions”>“Communications”下调用“TSEND_C”指令,并选择“Single Instance”生成背景 DB块。然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数。

然后,创建并定义发送数据区 DB 块。通过“Project tree”>“ PLC_1”> “Program blocks” >“Add new block” ,选择 “Data block”创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组。

根据所使用的参数创建符号表。

配置连接参数。

配置块接口参数。

⑤ 调用“TRCV”通信指令并配置块参数。

因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“Connection ID”号。

2、S7-300 CPU 的ISO on TCP通信的组态编程

① 使用STEP 7 软件新建一个项目并进行硬件组态

创建完新项目,在项目的窗口下,右键菜单里,选择“Insert New Object”>“SIMATIC 300 Station” ,插入一个S7-300站。

为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/Clock Memory”中设置。

每一个时钟位都按照不同的周期/频率在0和1之间切换变化。

② 配置以太网模块

进入“HW Config”中,组态所使用的 CPU 及“CP343-1”模板。并新建以态网 Ethernet (1) ,配置“CP343-1”模板IP 地址为:192.168.0.2,子网掩码为: 255.255.255.0 。配置完硬件组态及属性,编译存盘并下载所有硬件组态。

③ 网络组态

打开 “NetPro” 配置网络,选中 CPU,在连接列表里建立新的连接并选择连接对象和通信协议。这时会跳出通用信息。

然后,进入“Addresses”配置通信双方的IP 地址及TSAP 地址。

配置完连接并编译存盘后,将网络组态下载到CPU300中。

④ 软件编程

在OB1中,从“Libraries”>“SIMATIC_NET_CP”>“CP300”下,调用FC5(AG_SEND)、FC6(AG_RECV)通信指令。创建接收数据区为 DB2,定义成100个字节的数组。

CALL “ AG_RECV” //调用FC6

ID :=1 // 连接号,要与连接配置列表中一致,见图8

LADDR :=W#16#100 //CP的地址,要与配置中一致,见图8

RECV :=P#DB2.DBX 0.0 BYTE 100 //接收数据区

NDR :=M10.0 //为1时,接收到新数据

ERROR :=M10.1 //为1时,有故障发生

STATUS :=MW12 //状态代码

LEN :=MW14 //接收到的实际数据长度

CALL “AG_SEND” //调用FC5

ACT :=M0.2 //为1时,激活发送任务

ID :=1 // 连接号,要与连接配置中一致

LADDR :=W#16#100 //CP的地址,要与配置中一致

SEND :=IB0 //发送数据区

LEN :=1 //发送数据的长度

DONE :=M10.2 //为1时,发送完成

ERROR :=M10.3 //为1时,有故障发生

STATUS :=MW16 //状态代码

3、监控通信结果

下载S7-1200和S7-300中的所有组态及程序,监控通信结果。

在S7-1200 CPU中向DB3中写入数据:“11”、“22”、“33”,则在S7-300中的DB2块收到数据也为“11”、“22”、“33”。

在S7-300 CPU中,将“2#1111_1111”写入IB0,则在S7-1200 CPU中QB0中收到的数据也为“2#1111_1111”。

二、TCP 通信

使用TCP 协议通信,除了连接参数的定义不同,通信双方的其它组态及编程与前面的ISO on TCP 协议通信完全相同。

S7-1200 CPU中,使用 TCP 协议与S7-300通信时,PLC_1的连接参数,如图12所示。通信伙伴 S7-300 的连接参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

天拓分享:关于S7-1200和S7-300之间的通信 的相关文章

  • easypoi Excel导入导出 (工具类)

    1 用到的jar 红色的必须的 下面那些是运行起来 缺哪个就导哪个 如果报错提示没有这个方法的话 重启Tomcat 还不好使就是jar包版本不对 找个高点的版本 easypoi annotation 3 1 0 jar easypoi ba

随机推荐

  • SQL server数据库与My sql数据库的区别?

    在我们生活中无时无刻不需要使用到数据库 网络爬虫等一系列用处 那数据库到底是什么呢 我们一起接着往下看 数据库是存放数据的仓库 存储空间很大 可千万条 上亿条数据 但是数据库并不是随意地将数据进行存放 是有一定规则的 否则查询的效率会很低
  • Python最短代码实现人脸识别,打造自己专用人脸识别!

    对于类似于人脸的对象 你或许需要不少于 6000个分类器 每一个都需要成功匹配 当然 有容错率 才能检测出人脸 但这有一个问题 对于人脸识别 算法从左上角开始计算一个个数据块 不停问 这是张脸吗 每个数据块有超过 6000个检测 加起来的计
  • GM(1,1)预测模型的残差检验、关联度检验、后验差检验代码

    在建立好灰色模型后 首先要进行模型的检验 以检验模型的效果 一般有三种检验方法 相对残差检验 关联度检验 后验差检验 当三种检验全部通过时 表明模型的效果较好 才可以使用模型进行后续的预测 否则 将要对模型进行残差修正 直到三种检验均通过为
  • 引入PageHelper未进行分页操作SQL自动携带Limit 分页参数

    使用环境 PageHelper 版本 5 2 0 数据库类型和版本 mysql5 7 JDBC URL jdbc mysql x x x characterEncoding UTF 8 useAffectedRows true allowM
  • springboot序列化问题

    springboot的Long 前后端交互失去精度 BigDecimal序列化 精度问题 为空字段不序列化问题 方案1 为空字段序列化 always application yml配置 为空字段不序列化 non null spring ja
  • 【Elasticsearch】Elasticsearch命令行操作

    文章目录 Elasticsearch 一 ES介绍 二 安装Elasticsearch 三 安装Kibana 四 介绍ES中的一些概念 集群 节点 索引 数据库 文档 数据库中表中一条记录 分片 副本 五 操作ES 5 1索引 5 1 1
  • 【工具】IDEA下ANTLR Preview的使用

    1 概述 打开界面 如何查看树形结构呢 输入一个语句你想解析的语句放进去 发现没什么卵用 此时打开 g4文件
  • SQL注入的几种类型和原理

    在上一章节中 介绍了SQL注入的原理以及注入过程中的一些函数 但是具体的如何注入 常见的注入类型 没有进行介绍 这一章节我想对常见的注入类型进行一个了解 能够自己进行注入测试 注意 以下这些类型实在slqi labs环境 也就是MySQL
  • k8s--基础--22.12--storageclass--类型--Portworx 卷

    k8s 基础 22 12 storageclass 类型 Portworx 卷 1 案例 apiVersion storage k8s io v1 kind StorageClass metadata name portworx io pr
  • 蓝桥杯2020.07省赛B组 Java

    蓝桥杯2020 07省赛B组 整除序列 大数模拟 解码 遍历枚举 走方格 简单的dp 整数拼接 网络分析 超级胶水 整除序列 大数模拟 有一个序列 序列的第一个数是 n 后面的每个数是前一个数整除 2 请输出这个序列中值为正数的项 输入格式
  • C# -(二)最详细基础语法

    C 基础语法 学习思维导图 一 类型系统 C 有两种类型 值类型和引用类型 值类型的变量直接包含数据 而引用类型的变量则存储对数据 称为 对象 的引用 对于引用类型 两个变量可以引用同一个对象 对一个变量执行的运算可能会影响另一个变量引用的
  • 付出行动加入刷脸支付感受刷脸带来的红利

    无现金时代已陪伴我们许久 扫码支付给消费者带去诸多便利 但在两年后 我们或将引来无手机支付时代 刷脸支付将赋予消费者更加高效便捷的支付新习惯 据数据显示 2019年是我国刷脸支付的元年 届时将取代扫码支付成为主要支付方式 而在扫码支付盛行以
  • angular-cli中引入ng-zorro-antd(蚂蚁框架)

    首先你要确保angular cli环境搭建成功 第一步 进入项目文件夹 执行以下命令后将自动完成 ng zorro antd 的初始化配置 包括引入国际化文件 导入模块 引入样式文件等工作 ng add ng zorro antd 安装完成
  • 谷歌chrome编辑css样式不显示

    最近在用vscode编辑css代码的时候使用 在IE浏览器 qq浏览器 等其他浏览器上都可以显示 但是用谷歌浏览器没有显示任何效果 这里我在网上找到的原因是 谷歌浏览器会缓存页面的原css 要用Ctrl F5才可以重新加载修改后的css样式
  • 分区索引笔记(三)--全局分区索引

    全局分区索引在一个索引分区中包含来自多个表分区的键 一个全局分区索引的分区键是分区表中不同的或指定一个范围的值 在创建全局分区索引时 必须定义分区键的范围和值 全局索引只能是B树索引 Oracle在默认情况下不会维护全局分区索引 如果一个分
  • MPU6050使用心得(简单分享一下)

    前言 选用MPU6050做 倾斜检测 功能 前期准备 开发板 正点原子STM32F103 精英版 STM32F103ZET6 模块 GY 521 MPU6050 其他 杜邦线若干 烧录线 FlyMcu Keil5 正点原子开发板配套的套件
  • 镜头景深计算公式的推导

    景深是指成像画面中最近清晰点到最远的清晰点之间的范围 由于传感器或胶片的分辨率限制 或者照片冲洗放大后在一定距离观看时 受到人眼的分辨率极限限制 通常会将清晰这一概念与底片上一定尺寸的弥散斑大小相关联 按照传统的景深定义 物距为u1的点光源
  • IDEA 卡死的几种解决方案

    idea最为最为流行的Java开发工具其智能化提示对于开发人员非常友好 大大提高开发效率 不过我们在平时开发的时候不可避免的遇到idea卡死的情况 以下是我在平时遇到卡死的情况下的解决方法 1 调大idea内存配置参数 修改完后保存重启 X
  • 常用距离算法 (原理、使用场景、Python实现代码)

    距离度量是有监督和无监督学习算法的基础 包括k近邻 支持向量机和k均值聚类等 距离度量的选择影响我们的机器学习结果 因此考虑哪种度量最适合这个问题是很重要的 因此 我们在决定使用哪种测量方法时应该谨慎 但在做出决定之前 我们需要了解距离测量
  • 天拓分享:关于S7-1200和S7-300之间的通信

    1 S7 1200 的PROFINET 通信口 S7 1200 CPU 本体上集成了一个 PROFINET 通信口 支持以太网和基于 TCP IP 的通信标准 使用这个通信口可以实现 S7 1200 CPU 与编程设备的通信 与hmi触摸屏