论文部分内容阅读
【摘 要】S7-1200优点很多,其中最显著的一点就是集成了PROFINET端口,可以无需另行配置通讯模块就能实行以太网通讯功能,仅需要一条普通网线就能对其进行监控、下载、远程通讯或和HMI的交互。本文将详细介绍其远程通讯的应用——两台S7-1200的以太网通讯设置①②。
【关键词】S7-1200;以太网通讯
1.硬件配置及组态
1.1准备工作:
需要以下各项硬件:
•两台S7-1200
•安装了TIA Portal V11(版本不低于V11即可)的PC(正确配置网卡)
•标准以太网电缆
1.2打开软件,建立新项目。
1.3切换至项目视图,在项目树下选择添加新设备,加入两个PLC,型号为1214C DC/DC/DC 订货号是6ES7 214-1AG31-0XB0。
1.4项目“拓扑视图”内选中PLC_1,可在下方属性框内找到系统和时钟存储器的标签页,在“允许使用时钟存储器字节”前打勾,默认0即可。然后选中PLC_2,同样操作,打开系统时钟。本步骤的目的是为了使用M0.3这个系统时钟点来触发通讯。见图1 硬件配置系统时间。
图1 硬件配置系统时间
1.5双击拓扑视图中的PLC_1进入设备视图,再点击以太网接口,属性框将出现设置网络的相关项目。 点击添加新子网,得到子网PN/IE_1,并设置IP地 址为192.168.1.2,子网掩码为255.255.255.0。同样方式设置PLC_2的IP为192.168.1.8,子网名称同样为PN/IE_1,子网掩码为255.255.255.0。完成后的可点开网络视图,如图2所示 :
图2 组态成功
2.编程
2.1 建立通讯连接块TCON
2.1.1为了区分2个PLC的程序段,先重命名PLC_1的OB1为Main_1。
2.1.2在PLC_1的程序段中,新建数据块(DB),编号为2,类型选择为TCON_Param,名称为CON1_DB,为TCON的数据分配做准备。
2.1.3打开右侧指令窗口,选择通讯标签下的开方式用户通讯文件夹,双击TCON指令,选择DB11作为其系统数据块,然后在OB1中如图3所示填写各个管脚:
图3 建立PLC1的TCON
2.1.4对PLC_2 进行相似操作,命名PLC_2的OB1为Main_2,建立DB2命名为CON2_DB,建立TCON完成后如图4:
图4 PLC_2的TCON
2.1.5分别在PLC_1和PLC_2的OB1中点击TCON指令块,在下方属性栏可以看到如下图5所示设置界面③:
图5 TCON指令块的设置
2.2在PLC_1中建立发送和接受数据指令
2.2.1定义 PLC_1 的“TSEND”发送通信块接口参数
调用 “TSEND” 在OB1内调用 发送100个字节数据到PLC2中 。
进入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,从右侧窗口 “Instructions” > “Communications” > “OPEN User Communications”下调用 “TSEND” 指令。
如下图6所示,从右侧窗口拖拽出功能块TSEND就可以了④。
图6 TSEND功能块的建立
2.2.2 创建并定义PLC_1的发送数据区 DB 块。
通过“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,选择“Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组⑤。其中数据类型Data type为Array[0..100]of byte。
2.2.3 定义 PLC_1 的“TSEND”发送通信块接口参数,如下图7所示:
图7 TSEND通信块参数
输入接口参数说明:
REQ := M0.3 // 使用 2Hz 的时钟脉冲,上升沿激活发送任务
ID : = 1 //创建连接ID
LEN := 100 //发送数据长度
DATA := P#DB3.DBX0.0 BYTE 100 // 发送数据区的数据,使用指针寻址时,DB块要选用绝对寻址
输出接口参数说明:
DONE := M300.0 //任务执行完成并且没有错误,该位置 1
BUSY := M300.1 // 该位为 1,代表任务未完成,不能激活新任务
ERROR := M300.2 //通信过程中有错误发生,该位置 1
STATUS := MW302 //有错误发生时,会显示错位信息号
2.3在 PLC_1 的OB1中调用接收指令T_CV 并配置基本参数
2.3.1创建并定义PLC_1的接收数据区 DB 块
通过“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,选择“Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组。
2.3.2调用 “TRCV” 在OB1内调用
进入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,从右侧窗口 “Instructions” > “Communications” > “OPEN User Communications”下调用 “TRCV” 指令,配置接口参数,,如下图8所示:
图8 TRCV通信块参数
输入接口参数说明:
EN_R := TRUE // 准备好接收数据
ID := 1 // 连接号,使用的是 TCON 的连接参数中 ID号
LEN := 100 // 接收数据长度为 100 个字节
DATA := P#DB4.DBX0.0 BYTE 100 // 接收数据区的地址
输出接口参数说明:
NDR := M310.0 // 该位为 1,接收任务成功完成
BUSY := M310.1 // 该位为 1,代表任务未完成,不能激活新任务
ERROR := M310.2 // 通信过程中有错误发生,该位置 1
STATUS := MW312 // 有错误发生时,会显示错误信息号
RCVD_LEN := MW314 // 实际接收数据的字节数
2.4在PLC_2中建立发送和接受数据指令。步骤和方法同PLC_1,因其是不同PLC中的程序,故其DB块编号和各绝对地址可以完全相同而不会产生冲突和错误。
3.建立通讯并交换数据
图9 数据交换示意图
3.1建立监控和强制表,注意分别命名为PLC_1和PLC_2,否则在对比时容易混淆。
3.2下载程序,分别在线两个PLC的程序并打开监控表。注意,必须强制两个PLC的M50.0为1。强制后通讯才会打开。
3.3在监控和强制表中,给两个PLC的发送数据块中写入部分数据。注意写入不同内容以便于观察对应关系。同时还可以随时更改某一个或某一组数据,在其对应的接受数据块中可以看到相应内容的变化。示意图如图9⑥。
至此,通讯成功,接下来可以按照编程的通常需求发送和接收数据了。
参考文献:
[1] 《s7-1200 Easy Plus》.
[2] 《S7-1200基本以太网通信使用指南》.
注释:
①本通讯使用的是TCP通讯而非ISO ON TCP通讯。TCP协议只支持静态长度的数据传输。 而只有使用符号寻址的 ISO on TCP 通信才支持动态数据长度传输。
②本文设置经过实际测试,西门子《s7-1200 Easy Plus》中部分疏漏错误处已进行修正。
③关于ID的设置,可为任意数值,仅在有多个接口和多个PLC间通讯时才有实际区分,在设置时所填写的ID应和本身的ID号吻合,而不是和连接伙伴的ID号吻合。
④接收功能块TRCV操作与此类似。
⑤对于双边编程通信的 CPU ,如果通信数据区使用 DB 块,既可以将 DB 块定义成符号寻址,也可以定义成绝对寻址。使用指针寻址方式,必须创建绝对寻址的 DB 块。
⑥其中第七行AA仅为方便区分用于隔断,无实际意义。
作者简介:
蒋超(1985.9.19-)男,籍贯山东省济南市,2008年毕业于河北工业大学,毕业后一直从事于工业自动化领域,对冶金、煤电、水处理、船舶等行业的自动化控制有着丰富的工作经验。现为天津艾威克自动化技术有限公司的电气工程师。
左玉良(1982.7.17-)男,籍贯天津市和平区,毕业于天津农学院,毕业后一直从事于工业自动化领域,对冶金、喷涂、水处理、船舶等行业的自动化控制有着丰富的工作经验。现工作于天津磐升贸易有限公司,职位为电气总工。
【关键词】S7-1200;以太网通讯
1.硬件配置及组态
1.1准备工作:
需要以下各项硬件:
•两台S7-1200
•安装了TIA Portal V11(版本不低于V11即可)的PC(正确配置网卡)
•标准以太网电缆
1.2打开软件,建立新项目。
1.3切换至项目视图,在项目树下选择添加新设备,加入两个PLC,型号为1214C DC/DC/DC 订货号是6ES7 214-1AG31-0XB0。
1.4项目“拓扑视图”内选中PLC_1,可在下方属性框内找到系统和时钟存储器的标签页,在“允许使用时钟存储器字节”前打勾,默认0即可。然后选中PLC_2,同样操作,打开系统时钟。本步骤的目的是为了使用M0.3这个系统时钟点来触发通讯。见图1 硬件配置系统时间。
图1 硬件配置系统时间
1.5双击拓扑视图中的PLC_1进入设备视图,再点击以太网接口,属性框将出现设置网络的相关项目。 点击添加新子网,得到子网PN/IE_1,并设置IP地 址为192.168.1.2,子网掩码为255.255.255.0。同样方式设置PLC_2的IP为192.168.1.8,子网名称同样为PN/IE_1,子网掩码为255.255.255.0。完成后的可点开网络视图,如图2所示 :
图2 组态成功
2.编程
2.1 建立通讯连接块TCON
2.1.1为了区分2个PLC的程序段,先重命名PLC_1的OB1为Main_1。
2.1.2在PLC_1的程序段中,新建数据块(DB),编号为2,类型选择为TCON_Param,名称为CON1_DB,为TCON的数据分配做准备。
2.1.3打开右侧指令窗口,选择通讯标签下的开方式用户通讯文件夹,双击TCON指令,选择DB11作为其系统数据块,然后在OB1中如图3所示填写各个管脚:
图3 建立PLC1的TCON
2.1.4对PLC_2 进行相似操作,命名PLC_2的OB1为Main_2,建立DB2命名为CON2_DB,建立TCON完成后如图4:
图4 PLC_2的TCON
2.1.5分别在PLC_1和PLC_2的OB1中点击TCON指令块,在下方属性栏可以看到如下图5所示设置界面③:
图5 TCON指令块的设置
2.2在PLC_1中建立发送和接受数据指令
2.2.1定义 PLC_1 的“TSEND”发送通信块接口参数
调用 “TSEND” 在OB1内调用 发送100个字节数据到PLC2中 。
进入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,从右侧窗口 “Instructions” > “Communications” > “OPEN User Communications”下调用 “TSEND” 指令。
如下图6所示,从右侧窗口拖拽出功能块TSEND就可以了④。
图6 TSEND功能块的建立
2.2.2 创建并定义PLC_1的发送数据区 DB 块。
通过“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,选择“Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组⑤。其中数据类型Data type为Array[0..100]of byte。
2.2.3 定义 PLC_1 的“TSEND”发送通信块接口参数,如下图7所示:
图7 TSEND通信块参数
输入接口参数说明:
REQ := M0.3 // 使用 2Hz 的时钟脉冲,上升沿激活发送任务
ID : = 1 //创建连接ID
LEN := 100 //发送数据长度
DATA := P#DB3.DBX0.0 BYTE 100 // 发送数据区的数据,使用指针寻址时,DB块要选用绝对寻址
输出接口参数说明:
DONE := M300.0 //任务执行完成并且没有错误,该位置 1
BUSY := M300.1 // 该位为 1,代表任务未完成,不能激活新任务
ERROR := M300.2 //通信过程中有错误发生,该位置 1
STATUS := MW302 //有错误发生时,会显示错位信息号
2.3在 PLC_1 的OB1中调用接收指令T_CV 并配置基本参数
2.3.1创建并定义PLC_1的接收数据区 DB 块
通过“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,选择“Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组。
2.3.2调用 “TRCV” 在OB1内调用
进入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,从右侧窗口 “Instructions” > “Communications” > “OPEN User Communications”下调用 “TRCV” 指令,配置接口参数,,如下图8所示:
图8 TRCV通信块参数
输入接口参数说明:
EN_R := TRUE // 准备好接收数据
ID := 1 // 连接号,使用的是 TCON 的连接参数中 ID号
LEN := 100 // 接收数据长度为 100 个字节
DATA := P#DB4.DBX0.0 BYTE 100 // 接收数据区的地址
输出接口参数说明:
NDR := M310.0 // 该位为 1,接收任务成功完成
BUSY := M310.1 // 该位为 1,代表任务未完成,不能激活新任务
ERROR := M310.2 // 通信过程中有错误发生,该位置 1
STATUS := MW312 // 有错误发生时,会显示错误信息号
RCVD_LEN := MW314 // 实际接收数据的字节数
2.4在PLC_2中建立发送和接受数据指令。步骤和方法同PLC_1,因其是不同PLC中的程序,故其DB块编号和各绝对地址可以完全相同而不会产生冲突和错误。
3.建立通讯并交换数据
图9 数据交换示意图
3.1建立监控和强制表,注意分别命名为PLC_1和PLC_2,否则在对比时容易混淆。
3.2下载程序,分别在线两个PLC的程序并打开监控表。注意,必须强制两个PLC的M50.0为1。强制后通讯才会打开。
3.3在监控和强制表中,给两个PLC的发送数据块中写入部分数据。注意写入不同内容以便于观察对应关系。同时还可以随时更改某一个或某一组数据,在其对应的接受数据块中可以看到相应内容的变化。示意图如图9⑥。
至此,通讯成功,接下来可以按照编程的通常需求发送和接收数据了。
参考文献:
[1] 《s7-1200 Easy Plus》.
[2] 《S7-1200基本以太网通信使用指南》.
注释:
①本通讯使用的是TCP通讯而非ISO ON TCP通讯。TCP协议只支持静态长度的数据传输。 而只有使用符号寻址的 ISO on TCP 通信才支持动态数据长度传输。
②本文设置经过实际测试,西门子《s7-1200 Easy Plus》中部分疏漏错误处已进行修正。
③关于ID的设置,可为任意数值,仅在有多个接口和多个PLC间通讯时才有实际区分,在设置时所填写的ID应和本身的ID号吻合,而不是和连接伙伴的ID号吻合。
④接收功能块TRCV操作与此类似。
⑤对于双边编程通信的 CPU ,如果通信数据区使用 DB 块,既可以将 DB 块定义成符号寻址,也可以定义成绝对寻址。使用指针寻址方式,必须创建绝对寻址的 DB 块。
⑥其中第七行AA仅为方便区分用于隔断,无实际意义。
作者简介:
蒋超(1985.9.19-)男,籍贯山东省济南市,2008年毕业于河北工业大学,毕业后一直从事于工业自动化领域,对冶金、煤电、水处理、船舶等行业的自动化控制有着丰富的工作经验。现为天津艾威克自动化技术有限公司的电气工程师。
左玉良(1982.7.17-)男,籍贯天津市和平区,毕业于天津农学院,毕业后一直从事于工业自动化领域,对冶金、喷涂、水处理、船舶等行业的自动化控制有着丰富的工作经验。现工作于天津磐升贸易有限公司,职位为电气总工。