西门子6ES7212-1AE40-0xB0性能参数

价格 88.00
评价 已有 0 条评价
数量
+-
库存100
 
商家资料
 
西门子6ES7212-1AE40-0xB0性能参数  西门子6ES7212-1AE40-0xB0性能参数 西门子6ES7212-1AE40-0xB0性能参数

siemens/西门子授权合作伙伴

全新原装 质量保证 价格优势

公司大量现货!!!

【同样的价格、同样的品牌、给您不一样的服务】

玥励自动化设备有限公司西门子系统集成商长期销售西门子S7-200/300/400/1200PLC、数控系统、变频器、人机界面、触摸屏、伺服、电机、西门子电缆等,并可提供西门子维修服务,欢迎来电垂询 

联系人   张亮  (销售经理)

手机     13548747710

QQ       809118149

地址:长沙市岳麓区雷锋大道468号金科**城16-1603室

产品
商品编号(市售编号) 6ES7212-1AE40-0xB0
产品说明 SIMATIC S7-1200, CPU 1212C, COMPACT CPU, DC/DC/DC, onBOARD I/O: 8 DI 24V DC; 6 DO 24 V DC; 2 AI 0 - 10V DC, POWER SUPPLY: DC 20.4 - 28.8 V DC, PROGRAM/DATA MEMORY: 75 KB
产品家族 CPU 1212C
产品生命周期 (PLM) PM300:有效产品
价格数据
价格组 / 总部价格组 SK / 212
列表价(不含增值税) 显示价格
您的单价(不含增值税) 显示价格
金属系数
交付信息
出口管制规定 AL : N / ECCN : EAR99H
工厂生产时间 12 天
净重 (Kg) 0.34 Kg
产品尺寸 (W x L X H) 未提供
包装尺寸 10.60 x 10.80 x 8.60
包装尺寸单位的测量 CM
数量单位 1 件
包装数量 1
其他产品信息
EAN 4047623402701
UPC 未提供
商品代码 85371091
LKZ_FDB/ CatalogID ST72
产品组 4509
原产国 德国

西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方的设备(扫描枪、打印机等设备进行通讯。因为没有第三方的设备,这里就以超级终端为例介绍自由口通讯。

1.控制系统原理


图1:控制系统原理

2.硬件需求
S7-1200 PLC目前有3种类型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
这三种类型的CPU都可以连接三个串口通信模版。
本例中使用的PLC硬件为:
1)PM1207电源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0xB0 )
3) CM1241 RS232 ( 6ES7 241 -1AH30 -0xB0 )

3.软件需求

1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)

4.组态

我们通过下述的实际操作来介绍如何在Step7 Basic V10.5 中组态S7-1214C 和超级终端通信。

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:


图2: 新建S7 -1200项目

首先需要选择“Create new project”选项,然后在“Project name:”里输入PTP;在“Path:”修改项目的存储路径为“C:\”;点击“Create”,这样就创建了一个文件PTP的新项目。创建后的窗口如下图所示:


图3: 新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:


图4: 切换到项目视图

打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里选择CPU的类型。选择后如下图:


图5: PLC硬件组态

插入CPU后,点击CPU左边的空槽,在右边的“Catalog ”里找到“Communication”下的RS232模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需要配置此RS232模块硬件接口参数,选择RS232模块,在其下方会出现该模块的硬件属性配置窗口, 在属性窗口里有两个选项,一个是“general”;一个是“RS232 interface”。在“General”里包括了此模块的“项目信息”和“订货信息”;而在“RS232 interface”里包括“项目信息”、“端口的配置”、“发送信息的配置”、“接收信息的配置”和“硬件识别号”。在这里我们选择“RS232 interface”,在“端口”配置的选项里,进行端口的参数配置,
波特率为:9600 ;
校验方式:无 ;
数据位为:8 ;
停止位: 1;
硬件流控制:无;
等待时间: 1ms
设置参数如下图:


图6: RS232接口配置

此时确认一下“硬件识别号”为11。

此时,完成了硬件的组态,接下来需要编写串口通讯程序,在这里我们实现两个功能:
一、 S7-1200 发送数据给超级终端;
二、 超级终端发送数据给S7-1200

对于**个功能:S7-1200发送数据给超级终端,实际上是S7-1200是数据的发送方,超级终端是数据的接收方,对于S7-1200需要编写发送程序;而对于超级终端来说,只要打开超级终端程序,配置硬件接口参数与前面S7-1200的端口参数一只即可。

下面的步骤将具体介绍此功能实现的步骤:

①、在PLC中编写发送程序。在项目管理视图下双击“Device”下的程序块下的Main(OB1),打开OB1,在主程序中调用SEND_PTP功能块如下图所示:(注:SEND_PTP在指令库下的扩展指令中通讯指令下)


图7: 调用发送功能块

要对SEND_PTP赋值参数,首先需要创建SEND_PTP的背景数据块和发送缓冲数据块 ,双击“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在弹出的串口命名DB_Send_PTP,选择DB块,在Type后选择“SEND_PTP(SFB113)”


图8: 创建发送功能块的背景数据块

插入背景DB后,再插入发送缓冲DB块,重复上面的步骤,只是在选择DB类型为“Global DB”,并去掉“Symbolic access only”选项勾(这样可以对该DB块进行直接地址访问),并取名该DB块为DB_SEND_BUFF。建好这两个DB块后,双击打开DB_SEND_BUFF预先定义好要发送的数据,如下图所示:


图9:在接收缓冲区中接收到的数据

定义完发送缓冲区后,接下来就可以对SEND_PTP赋值参数,赋值参数后如下图:



图10:发送编程

在上面的编程块里需要注意的是,在指定发送缓冲区时。字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200对字符串的存放的格式造成的,S7-1200对字符串的前两个字节的定义**字节是**的字符长度,第二个字节是实际的字符长度。接下来才是存放实际字符。如下图:



图11:String存储格式

上面就完成了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里选择“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:


图12:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。
②、用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:


图13:超级终端的端口设置

③、打开OB1功能块在线监控程序,在变量监控表里强制M0.0为1,触发数据的发送,此时在超级终端就会接收到发送的数据,如下图:


图14:在超级终端监控发送来的数据

对于第二个功能:超级终端发送数据给S7-1200,实际上是S7-1200是数据的接收方,超级终端是数据的发送方,对于S7-1200需要编写接收程序;而对于超级终端来说,只要打开超级终端程序,配置硬件接口参数与前面S7-1200的端口参数一致,在界面上输入发送内容即可。

下面的步骤将具体介绍此功能实现的步骤:

①、在PLC中编写发送程序。在项目管理视图下双击“Device”下的程序块下的Main(OB1),打开OB1,在主程序中调用RCV_PTP功能块如下图所示:(注:RCV_PTP在指令库下的扩展指令中通讯指令下)


图15: 调用发送功能块

要对RCV_PTP赋值参数,首先需要创建RCV_PTP的背景数据块和发送缓冲数据块 ,双击“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在弹出的串口命名DB_RCV_PTP,选择DB块,在Type后选择“RCV_PTP(SFB114)”


图16: 创建接收功能块的背景数据块

插入背景DB后,再插入接收缓冲DB块,重复上面的步骤,只是在选择DB类型为“Global DB”,并去掉“Symbolic access only”选项勾(这样可以对该DB块进行直接地址访问),并取名该DB块为DB_RCV_BUFF。建好这两个DB块后,双击打开DB_RCV_BUFF定义接收缓冲区数据的类型,如下图所示:


图17:定义接收缓冲区

定义完接收缓冲区后,接下来就可以对RCV_PTP赋值参数,赋值参数后如下图:



图18:接收编程

在上面的编程块里需要注意的是,在指定接收缓冲区时。字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200对字符串的存放的格式造成的,S7-1200对字符串的前两个字节的定义**字节是**的字符长度,第二个字节是实际的字符长度。接下来才是存放实际字符。如下图:



图19:String存储格式

上面就完成了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里选择“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:



图20:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。
②、用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:


图21:超级终端的端口设置

在桌面上新建文本文件,打开此文本文件在里面输入“gfdcba”,如下图:


图22:在文本文件下输入要发送的字符串

③、打开变量监控表,强制M0.0,使能接收。然后, 在超级终端里,选择菜单“Transfer”下的“Send Text file”,在打开的窗口里找到桌面 上的文本文件。


图23:通过超级终端发送数据

打开DB_RCV_BUFF数据块,在线查看接收到的数据,如下图:


图23:接收缓冲区中接收到的数据

通过上面的例子实现了简单的应用,在实际的应用过程中,需要按第三方设备的协议进行编写S7-1200的程序。

西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,作为经常与SENTRON PAC3200系列仪表共同使用的PLC,其Modbus通信协议的使用一直在市场上有着非常广泛的应用。本文将主要介绍如何使用Modbus 通信协议来实现S7-1200与SENTRON PAC3200仪表的通信。


1.西门子SENTRON PAC3200 仪表介绍

西门子的SENTRON PAC3200多功能电力仪表是一种用于面板安装的仪表,可用来计量、显示配电系统多达50个测量变量,例如电压、电流、功率、有功功率、频率以及**值、**小值和平均值。中文大屏幕图形液晶显示使用户可远距离读表。PAC3200仪表如下图所示。


图1:仪表PAC3200

1.1 SENTRON PAC3200 MODBUS RTU通信扩展模块介绍

PAC3200多功能仪表的本体没有MODBUS RTU通信的功能,如果希望将PAC3200作为从站连接到MODBUS RTU网络与主站进行数据交换必须选用外部扩展通信模块――SENTRON PAC RS485模块。(注意: PAC RS485 扩展模块使用错误的固件版本时将不能工作
SENTRON PAC3200 电力监测设备的固件版本**应为FWV2.0X。 较早的版本不支持
PAC RS485 扩展模块。)该扩展模块具有下列性能特点:
        • 可通过设备正面设置参数
        • 即插即用
        • 支持 4.8/9.6/19.2 以及 38.4 KBd 通信传输速率
        • 通过6针螺钉端子接线
        • 不需要外接辅助电源
        • 通过模块上的 LED 显示状态

PAC3200 MODBUS RTU通信扩展模块如下图所示。

(1) 通信接线端子

(2) 安装螺钉

(3) 通风口

(4) LED


图2:PAC3200 MODBUS RTU 通信模块

1.2 SENTRON PAC3200 MODBUS RTU通信扩展模块的接线

SENTRON PAC3200 MODBUS RTU通信扩展模块的接线如下图所示



图3:PAC3200 MODBUS RTU 通信模块的接线图

1. 将电缆连接到端子排上相应的螺栓端子。
2. 将电缆屏蔽层的一端连接到保护性接地PE。
3. 将信号公共端连接到保护性接地。 这样也使得扩展模块接地。
4. 在**个和**后一个通信节点上,在正信号和负信号之间接入总线端接电阻器。 为
此,PAC RS485 扩展模块中集成了一个120 Ohm 的总线端接电阻器。 如果需要其它
电阻值,请使用外部总线端接电阻器。 将它连接到**个和**后一个通信节点。

1.3 SENTRON PAC3200 MODBUS RTU通信的方式

1.SENTRON PAC3200设备支持的功能码如下:
 

FC 功能码 数据类型 访问权限
02 输入的状态 输入 R
03 输出寄存器 寄存器 输出 R
04 输入寄存器  寄存器 输入 R
06 单一输出寄存器 寄存器 输出 RW
10 多个输出寄存器  寄存器 RW
2B 设备识别 R

表1: SENTRON PAC3200设备支持的功能码

R—可读
RW—可读写

2.SENTRON PAC3200 MODBUS RTU 与S7-1200进行通信
S7-1200 PLC可以通过功能代码0x03 和0x04 访问仪表PAC3200的被测量数据。
下表是一些PAC3200 被测量的数据。


表2: SENTRON PAC3200设备的一些被测量数据


2.西门子SENTRON PAC3200 仪表与S7-1200进行通信的接线图

下图是SENTRON PAC3200仪表与S7-1200进行MODBUS RTU 通信的接线图。


图4:S7-1200与PAC3200进行MODBUS RTU 进行通信的接线图


3.硬件需求
S7-1200 PLC目前有3种类型的CPU:
        1)S7-1211C CPU。
        2)S7-1212C CPU。
        3)S7-1214C CPU。
这三种类型的CPU都可以使用MODBUS通信协议通过通信模块CM1241 RS485来实现S7-1200与PAC3200仪表的通信。

本例中使用的PLC硬件为:
        1)PM1207电源 ( 6EP1 332-1SH71 )
        2) S7-1214C ( 6ES7 214 -1BE30 -0xB0 )
        3) CM1241 RS485 ( 6ES7 241 -1CH30 -0xB0 )
        4) 模拟器 ( 6ES7 274 -1XH30 -0xA0 )

本例中使用的PAC3200仪表硬件为:
        1) PAC3200 (7KM2112-0BA00-3AA0)
        2) MODBUS RTU 模块 (7KM9300-0AB00-0AA0)
        3) MODBUS 通信电缆 ( 6XV1830-0EH10)

3.软件需求

1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)


4.S7-1200 MODBUS RTU的通信方式
S7-1200作为MODBUS RTU主站的通信方式是由DATA_ADDR 和 MODE 参数来选择 Modbus 功能类型的。
DATA_ADDR(从站中的起始 Modbus 地址): 指定要在 Modbus 从站中访问的数据的起始地址。MB_MASTER 使用 MODE 输入而非功能代码输入。 MODE 和 Modbus 地址范围一起确定实际 Modbus 消息中使用的功能代码。

下表列出了 MB_MASTER 参数 MODE、Modbus 功能代码和 Modbus 地址范围之间的对应关系。



表3: MB_MASTER的MODBUS 功能

5.S7-1200 与PAC3200 进行MODBUS RTU的通信组态

我们通过一个实例来介绍如何在Step7 Basic V10.5 中组态S7-1214C 和PAC3200的MODBUS RTU通信。

5. 1 PLC 硬件组态

首先在Step7 Basic V10.5中建立一个项目,如图1所示。


图5: 新建S7 1200项目

在硬件配置中,添加CPU1214C和通信模块CM1241 RS485模块,如图2所示。


图6: S7 1200硬件配置

在CPU的属性中,设置以太网的IP地址,建立PG与PLC的连接,如下图所示。


图7: S7 1200 IP地址的设置

5. 2 PAC3200参数设置
在SENTRON PAC 电力监测设备的主菜单中,调用“设置”>“RS485 模块”,出现下面的设置画面:


图8: PAC3200 MODBUS RTU 通信参数的设置

1. 地址的设置范围:1-247。本例中设为8。
2. 波特率的设置范围:4800,9600,19200,38400。本例中设为38400。
3. 设置外部通信的数据位、奇偶校验位及停止位:
        • 8E1=8 个数据位,奇偶校验位为even, 1 个停止位
        • 8O1=8 个数据位,奇偶校验位为odd, 1 个停止位
        • 8N2=8 个数据位,无奇偶校验位, 2 个停止位
        • 8N1=8 个数据位,无奇偶校验位, 1 个停止位
        本例中根据S7-1200 MODBUS MASTER 的参数设置为 8N1。
4. 协议的设置:可选项为:SEABUS,MODBUS RTU。
本例中设为MODBUS RTU。
5.响应时间的设置:注意与波特率的设置相匹配,本例中设为10mS。

6.S71200 与PAC3200的MODBUS RTU通信原理与编程的实现

6. 1 S7 1200 PLC与PAC3200 通过MODBUS RTU 通信的基本原理

S7 1200提供了专用的MODBUS库进行MODBUS通信,如下图所示:


图9: S7 1200提供的专用MODBUS库

西门子PLC S7-1200的模块CM1241 RS232和CM1241 RS485都可以实现MODBUS RTU的通信,本例中采用CM1241 RS485模块来实现与仪表PAC3200的MODBUS RTU 的通信。
S7-1200的MODBUS RTU通信的基本原理是:
首先S7-1200 PLC的程序调用一次MODBUS 库中的功能块MB_COMM_LOAD来组态CM1241 RS232和CM1241 RS485模块上的端口,对端口的参数进行配置。
其次调用MODBUS 库中的功能块MB_MASTER或者MB_SLAVE作为MODBUS 主站或者从站与支持MODBUS协议的设备进行通信。

S7-1200 PLC作为MODUBUS 主站 与PAC3200 进行MODBUS RTU 通信的控制原理如下图所示:


图10:S7-1200 PLC作为MODUBUS 主站 与PAC3200 进行MODBUS RTU 通信原理

S7-1200 PLC还可以作为MODBUS子站与作为MODBUS主站之间的PLC进行MODBUS RTU通信,其控制原理如下图所示:



图11:S7-1200 PLC作为MODBUS子站与作为MODBUS主站之间的PLC进行MODBUS RTU的通信原理

每个S7-1200 CPU**多可带3个通信模块,而每个CM1241 RS485通信模块理论上**多支持247个MODBUS子站。但是在实际应用时需要考虑CPU的性能以及轮循MODBUS子站的时间。

6. 2 S7 1200 PLC与PAC3200通过MODBUS RTU通信的编程

1.MODBUS RTU 通信接口参数的编程

MB_COMM_LOAD 功能块用于组态点对点 (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模块上的端口,以进行 Modbus RTU 协议通信。

程序开始运行时,调用一次MB_COMM_LOAD功能块,来实现对MODBUS RTU模块
的初始化组态。
MB_COMM_LOAD执行一次的编程方式采用如下图所示时钟位M10.0来完成。


图12:MB_COMM_LOAD执行一次的编程时钟位的设置

MB_COMM_LOAD功能块的编程如下图所示。


图13:MB_COMM_LOAD功能块的编程

PORT:指的是通过哪个通信模块进行MODBUS RTU通信。
BAUD:指的是和MODBUS子站进行通信的速率。
                通信端口的波特率。取值范围为300,600,1200,2400,4800,9600,19200,38400,57600,
76800,115200。
注意:仪表PAC3200的波特率的设置范围:4800,9600,19200,38400。因此上S7-1200
            的波特率的设置一定要和仪表PAC3200的波特率的设置相一致。
MB_DB:对 MB_MASTER 或 MB_SLAVE 指令所使用的背景数据块的引用。 在用户程序中放置
            MB_SLAVE 或 MB_MASTER 后,DB标识符会出现在 MB_DB 功能框连接的助手下拉列表中。
            如“MB_MASTER_DB”或“MB_SLAVE_DB”。

STATUS:端口状态代码。具体含义如下表所示。


表4: MB_COMM_LOAD组态端口的状态代码

2.MODBUS_MASTER功能块的编程

MB_MASTER 功能块允许程序作为Modbus 主站使用点对点 (PtP, Point-to-Point) CM 1241 RS485 或 CM 1241RS232 模块上的端口进行通信。 可访问一个或多个 Modbus 从站设备中的数据。

MB_MASTER功能块的编程如下图所示。


图14:MB_MASTER功能块的编程

REQ:数据发送请求信号。0-无请求。1-请求将数据传送到MODBUS从站。
MB_ADR:通信对象MODBUS从站的地址。有效地址范围为0-247。值 0 被保留用于将消息广播到所有 Modbus 从站。 只有Modbus 功能代码 05、06、15 和 16 是可用于广播的功能代码。
注意:此处MODBUS从站的地址一定要与仪表PAC3200 的MODBUS 地址相一致。

MODE:模式选择。选择范围为:读、写、诊断。
DATA_ADDR:从站中的起始地址: 指定要在 Modbus 从站中访问的数据的起始地址。

特别注意的是:由于仪表PAC3200的寄存器与S7-1200 MODBUS RTU寄存器的不一致
性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开始。

注意: S7-1200的MODBUS RTU通信功能是通过使用“DATA_ADDR”和“MODE”的组合
来选择MODBUS功能码,如下表所示。


表5: S7-1200的MODBUS RTU通信功能码

而仪表PAC3200 MODBUS RTU通信功能则是通过功能码来实现的,如下表所示。

 
 
 
 
 
 
 

FC 功能码 数据类型 访问权限
02 输入的状态 输入 R
03 输出寄存器 寄存器 输出 R
04 输入寄存器 寄存器 输入 R
06 单一输出寄存器 寄存器 输出 RW
10 多个输出寄存器 寄存器 RW
2B 设备识别 R

表6: 仪表PAC3200 MODBUS RTU通信功能码

因此从上述可以得出如果需要读取输出寄存器的值时,需要使用模式0的03H功能,即
从寄存器40001到49999来读取仪表的数据,但是由于仪表PAC3200的寄存器与S7-1200
MODBUS RTU寄存器的不一致性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开
始。

DATA_LEN:请求访问数据的长度。位数或字节数。
DATA_PTR:数据指针: 指向要写入或读取的数据的 CPU DB 地址。 该DB 必须为
“非仅符号访问”DB 类型。
NDR: 新数据就绪:
        •0 – 事务未完成
        •1 – 表示 MB_MASTER 指令已完成所请求的有关 Modbus从站的事务。
BUSY:忙:
        •0 – 无正在进行的 MB_MASTER 事务
        •1 – MB_MASTER 事务正在进行
ERROR:错误:
        •0 - 未检测到错误
        •1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
STATUS:状态代码,如下表所示。


表7: MB_MASTER 进行MODBUS RTU通信的状态代码

在成功地编译下载到在S7-1200 PLC中后,可以从变量表中看到仪表PAC3200的三相相电压数据,如下图所示。


图15:在S7-1200中通过MODBUS RTU通信得到的仪表PAC3200的三相相电压数据

Modbus 主站通信规则:
● 必须先执行 MB_COMM_LOAD 组态端口,然后 MB_MASTER 指令才能与该端口通
信。
● 如果要将某个端口用于初始化 Modbus 主站的请求,则 MB_SLAVE 将不能使用该端
口。MB_MASTER 执行的一个或多个实例可使用该端口。
● Modbus 指令不使用通信中断事件来控制通信过程。 用户程序必须轮询
MB_MASTER 指令以了解传送和接收的完成情况。
● 如果用户程序操作 Modbus 主站并使用 MB_MASTER 向从站发送请求,则用户必须
继续轮询(执行 MB_MASTER)直到返回从站的响应。
● 请从同一个 OB(或 OB 优先等级)调用指定端口的所有 MB_MASTER 执行。

3.MODBUS_SLAVE功能块的编程
由于S7-1200与PAC3200进行MODBUS RTU通信,没有使用MODBUS_SLAVE功能块,因此在此只作简单介绍。
MB_SLAVE 指令允许程序作为 Modbus 从站使用点对点 (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模块上的端口进行通信。 Modbus RTU 主站可以发出请求,然后程序通过执行 MB_SLAVE 来响应。
在程序中放置 MB_SLAVE 指令时,必须分配**的背景数据块。 指定MB_COMM_LOAD 指令中的 MB_DB 参数时会用到该 MB_SLAVE 背景数据块名称。
Modbus 通信功能代码(1、2、4、5 和 15)可以在 PLC 输入过程映像及输出过程映像中直接读写位和字。


图16:MB_SLAVE 功能块

MB_ADDR:Modbus RTU 地址(1 到 247):Modbus 从站的站地址。
MB_HOLD_REG:指向 Modbus 保持寄存器 DB 的指针。 保持寄存器 DB 必须为典型的全局 DB。

注意:在创建此数据块时,请不要选择“Symbolic address only仅通过符号地址访问”。使用“MB_SLAVE”指令时,

NDR:新数据就绪:
        •0 – 无新数据
        •1 – 表示 Modbus 主站已写入新数据
DR:数据读取:
        •0 – 无数据读取
        •1 – 表示 Modbus 主站已读取数据
ERROR:错误:
        •0 - 未检测到错误
        •1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
STATUS:错误代码。如下表所示。


表8: MB_SLAVE 进行MODBUS RTU通信的状态代码

概述
通过以太网可以实现S7-1200与S7-200连接通信。S7-200可以使用 模块(CP243-1或CP 243-1 IT)连接到以太网上,该模块提供S7 通信的功能,既可作为客户机,也可以作为服务器,可以同时与**多8个S7 通信伙伴进行通信;S7-1200 集成以太接口,提供S7 通信的功能,只能作为服务器,可以同时建立3 个通信连接。
下面会用一个实例来描述S7-200 如何与S7-1200建立通信连接。


图1: 实例网络拓扑图

2.硬件需求

® S7-1214C AC/DC/RLY
® CPU 224 XP CN DC/DC/DC
® CP243-1 IT
® SCALANCE X204-2
® PG/PC(使用编程电缆)


3.软件需求

® S7-1200编程软件 STEP 7 Basic V10.5
® S7-200 编程软件 STEP 7 –MicroWIN V4.0 SP6

4.组态

4. 1 S7-1200 配置
® 使用STEP 7 Basic 创建项目“comS7200”;


图2: 创建项目

® 添加S7-1200 设备 CPU1214C;



图3: 添加PLC设备

4. 2 S7-1200 PLC 编程
® 在Program blocks 下,添加程序块(DB1,DB2,DB3),其中DB1和DB3为符号DB(选择 Symbolic access only),DB3为**地址DB(不选择 Symbolic access only) , S7 通信只支持**地址DB 寻址通信;


图4: 创建**地址DB2

® 打开全局DB2,输入2个数组类型数据,每个数组有16 个元素;


图5: 在DB2中添加数据

® 创建两个Watch table(Watch table_1, Watch table_2) 用来观察DB2的实时状态;
® 将程序下载到PLC CPU1214C 中。

4. 3 S7-200 配置
使用STEP 7-MicroWIN 中以太网向导将CP243-1 IT 配置为 S7 客户端。
® 通过菜单打开以太网向导工具;


图6: 以太网向导

® 设置模块位置,可以使用“读取模块”来自动识别;


图7: 模块位置设置

® 设置模块CP243-1 IT 的IP地址192.168.0.8和子网掩码255.255.255.0;


图8: 设置IP 地址

® 设置模块的连接数1 ,**多只能设置8个,也就是说S7-200可同时与**多 8 个 S7 通讯伙伴进行通讯;


图9: 设置模块连接数;

® 建立客户端连接 Connection_1,设置服务器传输层服务接入点 TSAP 03.01和服务器IP地址 192.168.0.18 , TSAP 由 2 个字节组成。**个字节为连接资源。第二个字节为通讯模板的机架号和插槽号;


图10: 配置连接

® 创建读取数据传输 PeerMessage_1, 读取服务器 16字节 DB2.DBB0~ DB2.DBB15 到VB0~VB15;


图11: 配置数据传输0

® 创建读取数据传输 PeerMessage_2, 将 16字节VB16~VB31写入服务器DB2.DBB16~ DB2.DBB31 ;


图12: 配置数据传输1

® 为配置分配存储区;


图13: 分配存储区

4. 4 S7-200 PLC 编程
® 在STEP 7-MicroWIN 中主程序中,调用子程序ETH0_CTRL;



图14: 调用ETH0_CTRL

其中CP_Ready 为CP 243-1 IT 的状态(0 未准备就绪,1 准备就绪),CH_Ready 为每个通道或 IT 服务的状态(0通道 ,值为256):Error 为出错或报文代码;
® 程序建立后,需通过PPI连接 将程序块和数据块下载到S7-200 CPU中;


图15: 设置 PG/PC 接口CP5611(PPI)

® 这样以后就可以通过以太网接口进行下载,将PG/PC接口设为TCP/IP连接;
® 在STEP 7-MicroWIN 中主程序中,调用子程序ETH0_XFR读取服务器数据,指定相应的连接通道和数据;


图16:调用ETH0_XFR 读取服务器

® 在STEP 7-MicroWIN 中主程序中,调用子程序ETH0_XFR写入服务器数据,指定相应的连接通道和数据;



图17:调用ETH0_XFR 写入服务器

® 将程序下载到S7-200 CPU 中;

4. 5 检测 S7-1200 与S7-200 PLC 通信结果
® 从S7-200 程序中可知,在M10.0 从0变为1时,读取S7-1200的数据DB2.DBB0~DB2.DBB15 到VB0~VB15中;


图18:S7-1200 DB2.DBB0~DBB15



图19:S7-200 VB0~VB15

® 从S7-200 程序中可知,在M11.0 从0变为1时,将S7-200的数据VB16~VB31 写入S7-1200 的DB2.DBB16~DB2.DBB31中;



图20:S7-200 VB16~VB31



图21:S7-1200 DB2.DBB16~DBB31


5.总结
S7 1200 与 S7-200 通过 S7通信的基本原理如下图所示:


图22:S7-200与S7-1200 通信原理

注意:
CP 243-1 IT 可支持一个或多个远程通讯伙伴的**多 8 个 S7 通讯通道到客户机(**多212 字节)或服务器。CP 243-1 IT 可以根据客户机/服务器原理在每个通道运行。每个通道,每次只能接收、处理或响应(主动响应或被动响应)一个请求。只有在发送响应后,CP 243-1 IT 通讯处理器才能接受其它请求。

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

1.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 编程接口进行数据管理需要编程来实现

1.3 硬件需求和软件需求
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(带以太网卡)
④ TP以太网电缆
软件:
① STEP 7 Basic V10.5
② STEP 7 V5.4

2. 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。

2.1 S7-1200 CPU 的组态编程
组态编程过程与 S7-1200 CPU 之间的通信基本相似 (见 6.3 ),这里简单描述一下步骤:
① 使用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个字节的数组。
根据所使用的参数创建符号表,如图1所示。
配置连接参数,如图2所示。
配置块接口参数,如图3所示。


图1 创建所使用参数的符号表图PLC tag


图2 配置连接参数


图3 配置 TSEND_C 块参数

⑤ 调用“TRCV”通信指令并配置块参数如图6 47所示。
因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“Connection ID”号,如图4所示。


图4 配置 T_RCV 块参数

2.2 S7-300 CPU 的ISO on TCP通信的组态编程
① 使用STEP 7 软件新建一个项目并进行硬件组态
创建完新项目,在项目的窗口下,右键菜单里,选择“Insert New Object”>“SIMATIC 300 Station” ,插入一个S7-300 站。
为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/Clock Memory”中设置,如图5所示。


图5 设置时钟脉冲

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

周期(S 2 01. Jun 1 0.8 0.5 0.4 0.2 0.1
频率(Hz 0.5 0.625 1 Jan 25 2 02. Mai 5 10

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


图6 S7-300 硬件配置

③ 网络组态
打开 “NetPro” 配置网络,选中 CPU,在连接列表里建立新的连接并选择连接对象和通信协议,如图7所示。

 
图7 创建新的连接并选择 ISO-on-TCP 协议

这时会跳出通用信息,如图8所示。


图8 通用信息

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


图9 配置通信的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 //状态代码

2.3 监控通信结果
下载S7-1200和S7-300中的所有组态及程序,监控通信结果,如图10、图11所示。
在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”。


图10 S7-1200监控表


图11 S7-300 变量表

3. TCP 通信
使用TCP 协议通信,除了连接参数的定义不同,通信双方的其它组态及编程与前面的ISO on TCP 协议通信完全相同。
S7-1200 CPU中,使用 TCP 协议与S7-300通信时,PLC_1的连接参数,如图12所示。通信伙伴 S7-300 的连接参数,如图13所示。


图12 S7-1200 的TCP连接参数的配置


图13 S7-300 的TCP连接参数的配置

长沙玥励自动化设备有限公司是专业从事西门子工业自动化产品销售和系统集成的高新 技术企业。在西门子工控领域,公司以精益求精的经营理念,从产品、方案到服务,致 力于塑造一个“行业**”品牌,以实现可持续的发展。

“信誉**,客户至上”是公司成立之初所确立的宗旨,在公司领导的严格要求和员工们不折不扣地贯彻执行下发展延续至今。“假一罚十”一直是我公司的主动承诺。
面对纷繁变化的市场和日益严峻的竞争,客户的需求和利益始终被我们放在工作的首位。我们想客户之所想,急客户之所急。针对各行业客户的不同需求,我们尽心尽力地为客户需要解决的难题提供精准的解决方案,竭尽全力将服务落到实处、做到**。在协助客户解决难题、实现突破的基础上,获得双赢!
我公司一直致力于推广西门子高性能自动化系统和驱动产品,所经营产品范围:LOGO!通用模块、SIMATIC S7全系列可编程控制器、PCS7 控制系统、WINCC组态软件、STEP 7编程软件和博图软件; 触摸屏、工控机、网络交换机、开关电源;6RA70/80系列直流调速装置,MM4、V20、G120、G130、G150、S120等全系列变频器;V90伺服产品,数控系统等工业自动化与驱动技术全系列产品。公司所备各类产品齐全,货量充足,能够满足客户对现货的需求,保证工程进度。
公司自成立以来,始终坚持以人才为本、诚信立业的经营原则,坚持“质量到位、服务**”的经营理念,在电工电气-工控系统及装备行业获得了客户的一致认可和高度评价,公司以为客户创造价值为己任,期待为您服务!
请相信长沙玥励自动化设备有限公司是您忠诚的长久的合作伙伴,我们愿与广大客户携手向前,共同进步!

全心全意为人民服务 ,24小时联系电话 :(张亮)13548747710 

 
西门子6ES7212-1AE40-0xB0性能参数
举报 收藏

服务热线:0311-89210691 ICP备案号:冀ICP备2023002840号-2