新兴县6ES7331-7PF11-0AB0经销商

发布时间:2018-07-23

产品siemens/西门子

产品规格:全新原装

 产品:保证

产品价格价格优势

 

                                           公司大量现货!!!

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

重庆暑鸿自动化设备有限公司(西门子集成商)销售西门子S7-200/300/400/1200PLC、数控、变频器、人机界面、屏、伺服、电机、西门子电缆等,并可提供西门子服务,欢迎来电垂询

地址:重庆市渝北区财富大道2号12-4

 


概述
S7-1200 与 S7-300 之间的以太网通信比较多,可以采用ISO on TCP、TCP和 S7 的进行通信。在S7-1200 CPU 中采用ISO on TCP和TCP这两种协议进行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, SCON, TSEN, TRCV ) 指令编程。S7-300 CPU一侧如果使用的是CPU集成的PN接口,连接不在STEP7的NetPro中建立连接,而是使用西门子提供的OPEN IE 的来实现。
本文主要介绍了如何实现在S7-1200 和S7-300 CPU集成PN口之间的ISO on TCP通信,包括通信的基本步骤、配置及编程等内容。具体的实现有多种,比如在S7-1200中可以使用不带连接的通信指令(TCON, SCON, TSEN, TRCV),也可以使用带连接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能块编程的来实现,也可以使用Open Communication Wizard工具(OPEN IE向导)的来建立OPEN IE的通信。
为了方便理解,本文在S7-1200中使用不带连接的通信指令TCON, SCON, TSEN, TRCV,在S7-300侧通过功能块编程的来实现。
关于S7-1200和S7-300 OPEN IE通信的文档可以登录西门子自动化与驱动集团网站的下载中心,网址:http://www.ad.siemens.com.cn/download/ ,根据如表1提供的文档编号搜索并下载相关文档。

文档编号 中文标题
A0426 西门子 S7-1200 PLC 技术参考Version 1.5
A0416 S7-1200S7-300 的以太网TCP ISO on TCP通信
A0421 如何实现两个S7-1200 CPU之间的以太网通信
A0415 通过S7协议实现S7-1200 S7-300的通信
A0414 S7-1200基本以太网通信使用指南
A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门
A0345 使用 Open Communication Wizard 建立开放式 ISO on TCP 通信
A0346 使用 Open Communication Wizard 建立开放式 UDP 通信
A0347 使用 Open Communication Wizard 建立开放式 TCP 通信
A0344 S7-300S7-400集成PN口的S7通信
A0334 PN CPU/CP的开放式通讯-Open IE

表1 下载中心文档列表

2 软硬件及所要完成的通信任务

2.1硬件设备

实验的硬件设备:
1、S7-1200 CPU,CPU1212 AC/DC/RLY(6ES7 212-1BD30-0XB0)
2、S7-300 PN CPU,CPU317-2PN/DP(6ES7 317-2EH13-0AB0 V2.6.7)
3、PC机(带以太网卡)
4、SCALANCE X216交换机,S7-1200、S7-300和PC通过交换机互连起来
5、TP以太网电缆

2.2

1、STEP7 Basic V10.5 SP2
2、STEP7 V5.4 SP5
3、通信所需的功能块,请参见附件提供的例程 ”Sample_1 ( 50 KB ) ” 或参考下载中心文档:《A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门》提供的程序。下载链接:80490650

2.3 所要完成的通信任务
本例中所要完成的通信任务定义为:
1、 将S7-1200的发送数据块DB3里的8个字节数据发送到S7-300的DB3中。
2、 将S7-300 DB3里接收到的8个字节数据再发送到S7-1200的接收数据块DB4中。


3 S7-1200 CPU的组态编程

3.1创建新项目

1、打开STEP 7 Basic 并新建项目
在STEP 7 Basic 的 “Portal View”中选择“Create new project”创建一个新项目,项目名称为“GS_ISO”。


2、添加硬件并命名PLC
然后 “Project view”,在“Project tree” 下双击 “Add new device”,在对话框中选择所使用的S7-1200 CPU(6ES7 212-1BD30-0XB0)添加到机架上,设备名为 PLC_1,如图1所示。


图1 添加新的PLC站

为了编程方便,我们使用 CPU 属性中定义的时钟位,定义如下:
在“Project tree> PLC_1 > Device configuration” 中,选中 CPU ,然后在下面的属性窗,“Properties > System and clock memory” 下,将位定义在MB1,时钟位定义在MB0,如图2所示。程序中我们主要使用 M0.3,它是以2Hz 的速率在0和1之间切换的一个位,可以使用它去自动发送任务。


图2 和时钟存储器

3、为 S7-1200 CPU的PROFINET 通信口分配以太网地址
在 “Device View”中 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在 “Ethernet addresses”下分配IP 地址为 192.168.0.2 ,子网掩码为255.255.255.0,如图3所示。


图3为 S7-1200 CPU的PROFINET 接口分配IP地址

3.2调用并配置通信指令

1、在 PLC_1 的 OB1 中调用 “TCON”通信指令
“Project tree > PLC_1 > Program blocks > OB1” 主程序中,从右侧窗口 “Instructions > Extended Instructions > Communications” 下调用 “TCON” 指令,并选择 “Single Instance” 生成背景 DB块,如图4所示。


图4 调用TCON指令

2、定义PLC_1 的 “TCON” 连接参数
PLC_1 的 TCON 指令的连接参数需要在指令下方的属性窗口“Properties > Configuration > Connection parameter”中设置,如图5所示。

连接参数说明:

End point

:选择通信伙伴,这里选择“unspecified”

Address

:通信伙伴S7-300站的IP地址“192.168.0.3”

Connection type

:选择通信协议为ISO on TCP

Connection ID

:连接的地址 ID 号,这个 ID 号在后面的编程里会用到

Connection data

:创建连接时,会自动生成本地的连接 DB 块,所有的连 接数据都会存在这个 DB 块中。

 

:选择本地 PLC_1作为连接,S7-300 CPU作为被动连接

Address details

:设定 TSAP 地址这里本地设置成“PLC_1”, TSAP ID自动为“50.4C.43.5F.31”,伙伴方设置成不设置TSAP(ASCII),设置TSAP ID 为“E0.02.50.4C.43.5F.31”。


图5 “TCON” 指令的连接参数

3、分配 “TCON” 的块参数
在指令下方的属性窗口“Properties > Configuration > block parameter”中设置,可以根据需要自己为“TCON” 块相应的输入输出参数。好参数的块,如图6所示。其中M8.0作为启动连接的触发位,连接ID = 1与连接参数里面的设置相同。


图6 “TCON” 的块参数

4、在 PLC_1 的 OB1 中调用 “TSEND” 发送通信指令
首先创建一个发送数据块,通过 “Project tree > PLC_1 > Program blocks > Add new block”,选择 “Data block” 创建 DB 块,选择寻址,“OK”键,如图7所示。


图7 创建一个发送数据块DB3

打开创建的发送数据块,在数据块中定义发送数据区为 8个字节的数组,如图8所示。


图8 创建发送数据区

然后在OB1 中调用“TSEND”发送通信指令,并为“TSEND”参数。使用M0.3( 2Hz 的时钟脉冲)上升沿发送任务,发送数据区为P# DB3.DBX0.0 BYTE 8,连接 ID = 1与连接参数里面的设置相同,发送长度LEN=8。分配好参数的“TSEND”块如图9所示。


图9 调用“TSEND”发送通信块

5、在 PLC_1 的 OB1 中调用“TRCV”接收通信指令
同样,先创建一个接收数据块DB4 ,如图10所示。“TRCV”接收通信指令的调用与“TSEND” 发送通信指令的调用相同,M8.1作为接收指令的使能位,如图11所示。


图10创建接收数据区

 


图11 调用“TRCV”接收通信块

6、在 PLC_1 的 OB1 中调用 “SCON”通信指令
后,为了断开通信链接,我们需要调用“SCON”通信指令,如图12所示。


图12 调用“SCON”通信块

3.3下载程序
至此,S7-1200侧的组态和编程都已经完成,可以在项目编译无错误后,直接下载到S7-1200 CPU中,并启动CPU的运行。


4 S7-300 CPU的组态编程
S7-300带PN接口的CPU支持ISO on TCP通信功能,通过该集成以太网接口组态ISO on TCP通信时,只能使用开放式通信的功能块,这些的功能块可以在STEP7 “ 通讯块”的 “库 ”中找到,如图13所示。


图13 S7-300 CPU通信指令库

库中提供了下列通信功能块:
′> FB 65 "TCON",用于建立连接,连接时需要UDT65来提供参数
> FB 66 "SCON",用于终止连接
> FB 63 "TSEND",用于发送数据到S7站点、S5站点、PC站或者第三方设备
> FB 64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据

要通过CPU 的 集成PN 接口实现开放的ISO on TCP通信,不能在Netpro网络组态中直接建立连接,必须通序每个连接的参数。用于通信的FB功能块,请参见附件提供的例程 ”Sample_1 ( 50 KB ) ” 或参考下载中心文档《A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门》提供的例程。下载链接:80490650

从附件提供的例程 ”Sample_1 ( 50 KB ) ” 中将把需要的程序块拷贝到新建的项目中,包括:
> UDT 65 "TCON_PAR",存放用户通信参数
> FB420 "SET_ISO_ENDPOINT" ,用于修改UDT65内通信对象参数
> FC21, 被FB420调用
随后,使用通信功能块 FB65 "TCON"、FB66 "SCON"、FB63 "TSEND" 和 FB64 "TRCV" 完成程序的编写。

4.1创建新项目

1、打开STEP7,新建一个项目
2、在项目中一个SIMATIC 300的站
3、组态硬件,一个CPU317-2PN/DP的CPU,并为PN接口分配IP地址“192.168.0.3”,如图14所示。同时,在CPU的“Cycle/Clock Memory”属性页中MB0为时钟存储器,在程序中可以使用M0.3(2Hz 的时钟脉冲)去自动发送任务,如图15所示。


图14为PN接口分配IP地址

 


图15设置时钟存储器字节

4.2编写通信程序

1、从样例程序中拷贝通信所需的块
从附件提供的sample_1 ( 50 KB ) 例程中把需要的FB420、FC21与UDT65程序块拷贝到新创建的项目中,如图16所示。


图 16

2、生成数据块
在程序中创建一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65,如图17所示。


图17

3、生成并调用FB块
首先生成一个FB块(本例为FB400),在FB400静态变量区建立一个结构“T_TSAP“,包含如下变量,并为变量分配初始值,如图18所示。
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有两个前导字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-N/DP规定)和 0x02(CPU槽号)
2) LOC_TSAP(STRING14)= 本地用户定义的ASCII字符'PLC_1' (注意要与S7-1200侧设置保持一致)。
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用两个前导符。
4) REM_TSAP (STRING16)= 远程用户定义的ASCII字符'PLC_1' (注意要与S7-1200侧设置保持一致)。


图18

然后在生成的FB400中调用FB420,如图19所示。


图19

其中参数的含义如下:
1)ID: 连接ID,与S7-1200里的设置保持一致
2)DEV_ID:用于本PLC型号(注意不是通信)
DEV_ID = B#16#1本PLC型号为 IM151-8 PN/DP CPU
DEV_ID = B#16#2本PLC型号为CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3本PLC型号为CPU319-N/DP
DEV_ID = B#16#5本PLC型号为CPU41x-N/DP
3)ACTIVE: 或是被动建立连接,通信双方必须一个,一个被动,本例中S7-300侧为被动方。
4)T_TSAP: 静态变量区的结构变量,用于ISO ON TCP 通信的TSAP地址
5)IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址,即S7-1200的IP地址192.168.0.2
6)CON_DB: 用UDT65生成的变量,即DB101

4、在OB1中调用发送和接收功能块
在OB1中先调用FB400功能块,为其背景数据块DB400,如图20所示。


图20

然后再在OB1中依次调用通信功能块FB65、FB64、FB63、FB66。其中发送和接收功能块FB64、FB63的数据区都为DB3,建立DB3如图21所示。关于块的使用请参考STEP7的在线帮助或相关文档说明。


图21

FB65 “TCON”,建立连接功能块,如图22所示。通过输入参数 "REQ"一个上升沿来建立连接。 “ID” 为连接ID,“CONNECT” 参数填写用 UDT65 生成的变量, 连接建立后会一直保持,直到调用FB66 "SCON" 断开连接、CPU停止或者断电。其中CONNECT为通过UDT65生成的DB块,即DB101, ID = 1。通过M8.0启业,执行连接的建立。


图22

FB64 “TRCV”,接收功能块,如图23所示。"TRECV" EN_R始终为TRUE, ID 填写连接ID,”DATA” 填写接收数据区,输出参数 "NDR" 用于表示新的数据已经收到,输出参数 "LEN" 表示接收的数据长度。本例中连接ID = 1。DB3作为接收数据块,接收数据的字节长度为8,接收作业通过M8.1使能。


图23

FB63 “TSEND”,发送功能块,如图24所示。连接ID = 1。DB3为发送数据块,发送字节长度为8,发送作业通过M0.3触发。"TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。


图24

FB66 “SCON”,取消连接功能块,如图25所示。可以根据需要取消ID=W#16#1的连接,作业通过M8.2使能。


图25

4.3下载程序
S7-300侧的组态和编程都完成后,直接下载到S7-300 CPU中,并启动CPU的运行。


5 监控通信结果
对S7-1200和S7-300都组态和编程后,下载所有组态及程序并搭建好网络后,首先在在S7-1200中将M8.0置位为1,然后再在S7-300中将M8.0置位为1,两个站的“TCON” 被,建立两个站之间的ISO on TCP连接。
连接正常建立后,即可以进行数据的交换。在S7-1200和S7-300站中将 ”TRCV” 功能块的EN_R置位为1,使能接收,监控通信结果如图26所示。
通过监控结果可以看到,S7-1200中发送数据块DB3的8个字节数据被发送到S7-300站的DB3中,同时,S7-300的DB3中接收到的数据又被发送到S7-1200的接收数据块DB4中。


图26 在线监控通信结果

 

描述
对于 SIMATIC S7-1200,从 CPU V2.0固件开始,STEP 7 (TIA-Portal) 提供 T_CONFIG 指令可以通过编程控制 CPU 集成 PROFINET 接口的配置。


图. 01

可以设置如下接口配置:

配置数据存储在 "Conf_Data" 结构体数据类型中。


图. 02

以PLC数据类型创建 "Conf_Data" 结构体数据类型。
它包含的数据类型:

说明
正确使用 T_CONFIG 指令需要注意以下几点:

序号. 步骤
1 CPU 属性中,在 "Ethernet address" 下,选择想修改的设置:
下列设置可以被改变:
  • IP 地址、子网掩护码和路由地址。
  • PROFINET 设备名

必须选择"... using a different method".


图. 03

2 此外,地址数据结构 IF_CONF_v4 或 PROFINET 设备名数据结构 IF_CONF_NOS 中的参数 "Mode" 必须为值 1 (= 配置数据有效)。
取决于是否只修改接口地址还是也要修改PROFINET 设备名,必须设置 header 数据类型 IF_CONF_Header 中的 "SubfieldCount" 参数值为 "1" 或 "2" (= 结构体中的所有子域) (见图. 02).
3 对数据类型 IP_V4 ,以 "Array of Bytes" 输入每一个要修改的地址。


图. 04

4 以 "Array of Bytes" 一个字符一个字符的传送要修改的 PROFINET 名到 NOS 参数。
要遵从PROFINET名字的命名规则(如, 多240个小写字符、数字、连字号、句号).
PROFINET 名可以短于 240 字节但必须大于 2 字节。
必须根据 "PROFINET 名字长度 + 6"来修改 "Length" 变量。


图. 05

表 01

提示

本条目描述的功能和解决方案主要限于实现自动化任务。此外,如果该与工厂其它部分或整个互联网有连接,请注意必须采取适当的 措施以遵循相应的工业。更多信息参见条目ID: 50203404.

下载
学 T_CONFIG 指令,可以参考下面的例子项目。
它包含通过操作面板 KTP 600 Basic PN 修改 PROFINET 接口的配置。
当T_CONFIG 指令使用时,HMI 通过 "Change connection" 事件与新配置了PROFINET接口的控制器同步建立通讯。
由于 KTP 600 Basic PN 不支持无类别域间路由(CIDR),后的8位组IP地址只能在C类网络中修改。
KTP 600 Basic PN 也可以在没有硬件时由 STEP 7 V11 模拟。
项目中的 IP 地址如下:


图. 06

KTP 600 Basic PN 用户接口包含下列元素:

要进行确认,在 STEP 7 V11 中,可以通过刷新可访问节点来检查 IP 分配,通过"Online & Diagnostics" 下的"Assign name"功能来检查PROFINET设备名。

 

S7-1200存储卡的基本介绍

S7-1200CPU使用的存储卡为SD卡,存储卡中可以存储用户项目文件,有如下三种功能:

1. 作为CPU的装载存储区,用户项目文件可以仅存储在卡中,CPU中没有项目文件,离开存储卡无法运行。

2. 在有编程器的情况下,作为向多个S7-1200PLC传送项目文件的介质。

3. 忘记时,CPU内部的项目文件和。

4.         24M卡可以用于更新S7-1200CPU的固件版本


1 S7-1200存储卡

 

如何存储卡:

CPU上挡板向下,可以看到右上角有一MC卡槽,将存储卡缺口向上,如下图所示:


2存储卡

 

注意:

 对于S7-1200CPU,存储卡不是必需的。

 将存储卡插到一个处于运行状态的CPU上,会造成CPU停机。

 S7-1200 CPU 仅支持由西门子制造商预先格式化过的存储卡,即下列订货号产品:

订货号

容量

6ES7 954-8LF01-0AA0

24MB

6ES7954-8LC01-0AA0

4MB

6ES7 954-8LB01-0AA0

2MB

1:存储卡信息

 

 如果使用 WINOOWs 格式化程序对SIMATIC 存储卡重新进行格式化,CPU将无法使用该重新格式化的存储卡。

 目前S7-1200还无法配合存储卡实现配方和数据归档之类的功能。

 

存储卡的工作

存储卡有两种工作:

 程序卡:存储卡作为S7-1200 CPU 的装载存储区,所有程序和数据存储在卡中,CPU 内部集成的存储区中没有项目文件,设备运行中存储卡不能被

 传输卡:用于从存储卡向CPU传送项目,传送完成后必须将存储卡。CPU可以离开存储卡运行。

 

修改存储卡的工作:

STEP 7 Basic的项目视图下,左侧”Project View--->"SIMATIC Card Reader" --->您的读卡器型号,如下图所示:


3Project View

 

右击存储卡的盘符(这里是F:),选择“属性”,打开下面窗口:


4MC属性

 

用户在“Card type”选择需要的工作,“OK”完成设定。

 

使用程序卡的不同

优点:更换CPU时不需要重新下载项目文件。

 

3.1 装载用户项目文件到存储卡:

 步:按照上面将存储卡设定到“编程”。建议客户做此操作之前存储卡中的所有文件。

 步:设置CPU的启动状态:在"Project tree"中右击CPU选择“属性”,在“属性”窗“Startup,此处我们必须选择“Warm restart-RUN


5 Startup

 

 第三步:将CPU断电。

 第四步:将存储卡插到CPU卡槽内

 第五步:将CPU上电

 第六步:在STEP 7 Basic中下载,将项目文件全部下载到存储卡中。此时下载是将项目文件(包括用户程序、硬件组态和强制值)下载到存储卡中,而不是CPU内部集成的存储区中。

 

完成上述步骤后,CPU可以带卡正常运行。此时如果将存储卡,CPU会报错,"ERROR"红灯闪烁。

 

3.2 常见问题:

常见问题1

为什么插上存储卡后CPU的“MAINT”灯闪烁,使用STEP 7 Basic下载是提示报错“The download of the hardware configuration failed (0050 -133 2 2458)”?

回答

请存储卡中的所有文件,重新使用STEP7 Basic将存储卡设置到“编程”,然后再重复上述步骤。请您也检查存储的拨码开关,检查存储卡是否处于写保护。

 

常见问题2

为什么CPU断电上电后停止状态,而不运行状态?

回答

原因是CPU的启动不是“Warm restart-RUN”,详细请参考上面“步”。

 

使用传输卡

优点:在没有编程器的情况下,方便快捷地向多个S7-1200PLC拷贝项目文件。

 

4.1 向处于传输的存储卡中装载项目

 步:按照上面将存储卡设定到“编程”。建议客户做此操作之前存储卡中的所有文件。

 步:设置CPU的启动状态:在"Project tree"中右击CPU选择“属性”,在“属性”窗“Startup,此处我们必须选择“Warm restart-RUN

 第三步:直接拖拽PLC设备到存储卡盘符


6:拖拽

 

用户也可以直接将一张已经做好的“程序卡”更改为“传输卡”

 

4.2 从存储卡项目到S7-1200PLC

 步:将CPU断电

 步:插卡到CPU卡槽

 第三步:将CPU上电,用户会看到CPU"MAINT"黄灯闪烁

 第四步:将CPU断电,将存储卡

 第五步:将CPU上电

 

常见问题:

为什么CPU断电上电后停止状态,而不运行状态?

回答:

1.         CPU的启动不是“Warm restart-RUN”,详细请参考上面“步”。

2. 检查第三步,必须拖拽PLC项目到存储卡盘符,而不是程序块等其他项目内容。下载到存储卡中的项目文件有可能不完整,例如确实硬件组态等。

 

使用存储卡

如果客户忘记了之前设定到S7-1200的,通过”恢复出厂设置“无法S7-1200内部的程序和,因此的是使用存储卡。详细步骤如下:

1. S7-1200设备断电

2. 一张存储卡到S7-1200CPU上,存储卡中的程序不能有保护

3. S7-1200设备上电

 

S7-1200CPU上电后,会将存储卡中的程序到内部的FLASH寄存器中,即执行操作。

客户也可以用相同的一张全新的或者空白的存储卡到S7-1200CPU,设备上电后,S7-1200CPU会将内部存储区的程序转移到存储卡中,拔下存储卡后,S7-1200CPU内部将不在有用户程序,即实现了。存储卡中的内容可以使用读卡器。

 

注意:不要格式化存储卡

 

使用24M存储卡更新S7-1200CPU的固件版本

S7-1200的固件版本可以从西门子站下载http://support.automation.siemens.com/WW/view/cn 。用户可以使用西门子网站右上方的搜索引擎在“Download”分类中搜索“S7-1200 firmware”。

 

注意:

1. 不同订货号的S7-1200CPU的固件文件不相同,下载地址也不相同。用户在下载和更新固件之前请核对产品订货号。

2.         2M存储卡不能用于CPU固件升级。

3. 固件升级前CPU内部存储的项目文件(程序块、硬件组态等)不受影响,不会被。

4. 如果存储卡中的固件文件订货号与实际CPU的订货号不一致,即使执行了下列步骤,CPU的原固件版本也不会改变。

 

 

更新CPU的固件具体步骤如下:

 步:使用电脑通过读卡器存储卡中内容。注意:不要格式化存储卡!

 步:从西门子站下载版本的固件文件。下载并解压缩,用户可以一个“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夹。

 第三步:S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夹拷贝到存储卡中。

 第四步:将存储卡插到CPU1200卡槽中。此时CPU会停止,“MAINT”指示灯闪烁。

 第五步:CPU断电上电CPU的“RUN/STOP指示灯红绿交替闪烁说明固件正在被更新中。“RUN/STOP指示灯亮,“MAINT”指示灯闪烁说明固件更新已经结束。

 第六步:存储卡

 第七步:再次将CPU断电上电

 

 

概述

本文介绍了通过OPEN IE的实现S7-1200SIMOTION D410PN之间的TCP通信的,包括通信的基本配置、组态和编程等内容。S7-1200实现TCP通讯的指令有两种,一是不带连接的指令(TCONSCONTSENDTRCV),另一种是带连接的指令(T RCV_CTSEND_C);SIMOTON包含的通信指令包括tcpOpenClienttcpOpenServe rtcpSendtcpReceivetcpCloseSevertcpCloseConnection

本文选用S7-1200不带连接的指令TCONSCONTSENDTRCV,实现与D410 PN的通讯。

2 S7-1200D410PN装置的连接

2.1 硬件配置列表

 
 

设备

订货号

版本

CPU 1214C DC/DC/DC

6ES7214-1AE30-0XB0

V2.2

D410PN

6AU1410-0AB00-0AA0

Version B, FW V4.2

SCANLANCE X208

6GK5208-0BA10-2AA3

V3.1

1 所采用的硬件列表

2.2 所使用的

§ TIA Portal V11 SP2

§ SCOUT V4.2.1

 

 

2.3 通讯参数设置

硬件连接配置

1 硬件连接示意图

 

CPU 1214CD410PN本身都带有集成PN口,可以直接使用。

IP 地址设置(子网掩码均为255.255.255.0):

 

DEVICE

IP Address

CPU 1214C

192.168.0.4

D410DP

192.168.0.2

PC

192.168.0.10

 

表2 IP地址设置

3 项目配置

3.1 S7-1200的配置

打开TIA Portal,新建一个项目,在“添加新设备”中选择所需的硬件及版本,如图2所示。

2 选择设备和版本

打开设备视图,设置设备“属性”下的以太网地址为192.168.0.4,子网掩码为255. 255.255.0。见图3

3 设置以太网地址

在设备视图的属性窗设置时钟存储器,将时钟存储器的地址设置为MB20,并使用其中的M20.5位,011Hz切换,用来循环发送任务,见图4

4 时钟存储器设置

3.2 D410PN的配置

打开SCOUT,新建一个项目,设置PG/PC接口为电脑的以太网卡,双击“INSERT SIMOTION DEVICE”后,选择相应版本的D410PN,并打开硬件组态画面,在其中设置PN口的以太网地址和子网掩码,见图5

5 组态D410PN地址

4 通信指令

4.1 S7-1200侧的指令调用

TCONSCONTSENDTRCV等指令均可以在右侧指令中的“通信—〉开放式用户通信”找到。本文中所有通讯指令均在background 中执行。

S7-1200在本文中作为Server,通讯开始前先TCON指令来建立端口,并等待Client的建立连接请求,一旦通信连接建立,此时“REQ”就不再起作用,若想重新建立连接需先调用“SCON”断开连接,再从新“TCON重新建立连接。

6 调用TCON

REQ”:TCON功能。

ID”:设置所建立连接的ID,以后的TSENDTRCVSCON均使用此ID

CONNECT”:连接配置DB,在配置完TCON参数后自动生成。

Done”:建立连接任务完成后置1

BUSY”:建立连接任务执行中置1

ERROR”为1时,在STATUS中显示错误代码,“ERROR”为0时,在STATUS中显示指令执行状态代码。

当连接建立后,通序段2可以将“opensever”置0

在调用TCON指令时会要求设置连接参数,见图7

7 TCON连接参数设置

“伙伴”:选择未。

“地址”:设置与S7-1200通讯的SIMOTION的地址。

“连接类型”:选择TCP

“连接ID: 发送、接收和连接断开所使用的ID

“连接数据”:设置新建或使用已有的连接DB

“建立连接”:选择建立连接的一方为客户端,另一方为。

“端口”:设置本地和伙伴的端口号,在SIMOTION的指令中会用到这里。

设置TCON参数时要先选择“连接数据”中的“新建”,建立一个新的Connection DB,然后再填写各个参数。

 

在通讯建立后,TSEND,TRCV指令(将发送指令的“REQ”端置1,将接收指令的“EN_R”置1),用来发送和接受数据。

8 TSEND连接参数设置

9 TRCV连接参数设置

注意:

(1) 在建立“DATA”中要的发送数据和接受数据DB时,其块访问的必须是“-S7-300/400兼容”,否则在该指令时会报错,见图10

(2) TSENDTRCV的“ID”必须与TCON中设置的相同,而此“ID”与SIMOTION中的“ID”未必相同。

(3) TRCV在接收数据后,“NDR”会自动置1,且“RCVD_LEN”会显示接收到的数据长度。

10 数据 DB建立

若要断开当前连接,则调用SCON。断开连接后,根据程序段6,“dis con”位会被重新置0。

11 SCON连接参数设置

4.2 SIMOTION侧的指令调用

SIMOTION的通信指令可以在Command library中的“Communication->Data transfer”目录下找到。通信程序块“TCPbackground中运行。

tcpOpenClient指令,该指令用来在simotion 侧客户端端口,并向发送连接请求,若请求,则建立连接,并返回连接ID。该指令需使用上跳沿单次触发,此函数只调用一次,连接ID后应停止调用。

12 tcpOpenClient指令参数设置

port”:设置simotion本地端口号。

severAddress”:设置通讯(S7-1200)地址(192.168.0.4)。

serverport”:设置(S7-1200)端口号,必须与S7-1200组态中设置的相同。

nextCommand”:

IMMEDIATELY:命令与后续所要执行的命令同步执行。

WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。

本文中将程序simotionbackground中执行,因此若使用WHEN_COMMAND_DONE,有可能在该命令执行时间过长情况下background执行时,报错停机。

OUT”:函数调用返回信息,包括执行状态和返回的连接ID,后面的发送和接收指令均使用该ID。数据类型为结构体(StructRetTcpOpenClient),参考表3。

结构

名称

数据类型

functionResult

状态信息,查看

连接是否建立

DINT

connectionId

连接号

DINT

3 TcpOpenClient返回值结

 

TcpSend指令用于发送数据,与S7-1200的接收指令相对应,可循环调用。

13 TcpSend参数设置

ConnectionId :使用tcpOpenClient返回的ID

nextCommand”:

IMMEDIATELY:命令与后续所要执行的命令同步执行。

WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。

本文中将程序simotionbackground中执行,因此若使用WHEN_COMMAND_DONE,有可能在该命令执行时间过长情况下background执行时,报错停机。

DataLength”:发送数据的字节长度,本例为8,发送数据区的前8个字节。

Data”:发送数据区,数据类型为数组,ARRAY[0..4095] OF BYTE

OUT”:输出通信状态。

注意:SIMOTION的发送区(接收区)与PLC的接收区(发送区)数据长度必须一致。

TcpReceive指令用于发送数据,与S7-1200的接收指令相对应,可循环调用。

14  TcpReceive参数设置

 

 

ConnectionId :使用tcpOpenClient返回的ID

nextCommand”:

IMMEDIATELY:命令与后续所要执行的命令同步执行。

WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。

本文中将程序simotionbackground中执行,因此若使用WHEN_COMMAND_DONE,有可能在该命令执行时间过长情况下background执行时,报错停机。

receivevarible”:接收数据区,数据类型为数组,ARRAY[0..4095] OF BYTE

OUT”:调用函数返回信息,包括调用状态和接收的字节数量。数据类型为结构体(StructRetTcpReceive),参考表4。

结构

名称

数据类型

functionResult

接收状态信息

DINT

dataLength

接收字节长度

UDINT

4 TcpReceive返回值结构

实验

本例中使用的程序可以在“S7-1200.zip (1350 KB) ( 1350 KB )”和“D410.zip (1597 KB) ( 1597 KB ) ”这两个压缩包中找到。

首先在S7-1200侧建立连接的指令“TCON”,等待SIMOTION侧的连接请求,接着在SIMOTION侧打开客户端指令“TcpOpenClient”,发送建立连接的请求。请求后,“TcpOpenClient”的返回值结构中的functionResult会显示“0”,同时在connec tionId中会返回ID(IDPLC中设置的ID未必一致)

之后分别使能PLC侧和SIMOTION侧的发送接收指令,开始数据传送。

SIMOTIONWATCH TABLE监控结果:

15  SIMOTION侧接收和发送的数据

 

 

PLC侧监控表的监控结果:

 

 

16  PLC侧接收和发送的数据

上一篇:TS5208N500 OIH48...
下一篇:滁州市正泰电气经销商