产品详情
上海一级代理商
6GK7 243-1GX00-0XE0
6GK7 243-1GX00-0XE0
6GK7 243-1GX00-0XE0
钟涛()
24小时销售及:
电 话:
手 机:
: 1824547528
地址:上海市金山区枫湾路500号
《销售态度》:质量保证、诚信服务、及时到位!
《销售宗旨》:为客户创造价值是我们永远追求的目标!
《产品质量》:原装*,*!
《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!
CPU自带的以太网接口可以使用OPEN IE的方式实现如下协议,分别介绍如下:
• TCP
• UDP
• ISO-on-TCP
注意:以下内容任何用户可以免费使用,复制和传递他人,程序的作者及拥有者不负责软件的功能性和兼容性,使用者须自己承担责任,由于内容免费,所以不保证错误的更正和支持!
1. TCP通信
1.1通信程序块的准备
如下的通信块可以用来建立TCP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) FC97 "SET_TCP_ENDPOINTx" 用于修改UDT65类型变量内通信对象参数
FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:
图 01: FB63,64,65,66上海一级代理商
FC97与UDT65需要从如下项目中打开获得:
( 42 KB )
图 02: FC97与UDT65
首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。
1.2通信程序编写
1.2.1 生成数据块
在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65
图 03: 生成UDT65类型变量
1.2.2在OB1中编程
首先调用FC97 "SET_TCP_ENDPOINTx"
图 04: 调用FC97
FC97参数说明如下:
• ID: 连接ID
• DEV_ID
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-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为 CPU41x-3PN/DP
• ACTIVE: 主动或是被动建立连接,通信双方必须一个主动,一个被动
• LOC_PORT: CPU本地的TCP端口
• REM_PORT: 通信伙伴的TCP远程端口
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• V23:本机是否是CPU31x-2PN/DP FIRMWARE 版本为2.3或以下版本
• CON_DB:用UDT65生成的变量
图05: 调用FB65 "T_CON"
调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。
1.2.3 调用发送和接收程序
图06: 调用 FB63,64发送接收数据上海一级代理商
FB63 "TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。
FB64 "TRECV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。
1.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。
图 07: 调用FB66 "TDISCON"
2. UDP通信
2.1通信程序块的准备
如下的通信块可以用来建立UDP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB67 "TUSEND"用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB68 "TURCV"用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) UDT66 "TADDR_PAR"存放用户通信参数
7) FC95"SET_UDP_ENDPOINT"用于建立本地UDP通信参数
8) FC96"SET_UDP_REMOTE"用于建立远程UDP通信参数
FB65,66,67,68这四个功能块可以在Standard Library -> Communication Blocks里得到:
图 08: FB65,66,67,68
FC95,96与UDT65,66需要从如下项目中打开获得:
( 41 KB )
图 09: FC95,96与UDT65,66
首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。
2.2通信程序编写
2.2.1 生成数据块
然后在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65
图 10: 生成UDT65类型变量
然后在程序中生成另一个DB块,块号不限(本例为db102),在块中建立变量DB_VAR,类型为UDT66
图 11: 生成UDT66类型变量
2.2.2在OB1中编程
首先调用FC95,96
图 12:调用FC95,96
定义的本地UDP端点连接参数:
通过FC95 "SET_UDP_ENDPOINT"设置,下列参数需要考虑:
• ID: 连接ID
• DEV_ID
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-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为CPU41x-3PN/DP
• LOC_PORT: CPU本地的TCP端口
通过FC96 "SET_UDP_REMOTE"定义远端的UDP端点. 下列参数需要考虑:
REM_PORT: 通信方端口号
IP_ADDR1 ... IP_ADDR4: 通信方IP地址
图 13: 调用FB65 "T_CON"
调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。
2.2.3 调用发送和接收程序
图 14: 调用FB67,68接收和发送数据
FB67 "TUSEND"发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。"ADDR"填写UDT66生成的变量。
FB68 "TURCV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。"ADDR"填写UDT66生成的变量。
2.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。
图 15: 调用FB66 "TDISCON"
3. ISO ON TCP通信
3.1通信程序块的准备
如下的通信块可以用来建立ISO ON TCP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) FB420 "SET_ISO_ENDPOINT" 用于修改UDT65内通信对象参数
7) FC21 被FB420调用
FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:
图 16: FB63,64,65,66
FB420 FC21与UDT65需要从如下项目中打开获得:
( 50 KB )
图 17: FB420 FC21与UDT65
首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。
3.2通信程序编写
3.2.1 生成数据块
在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65
图 18: 生成UDT65类型变量
3.2.2在OB1中编程
首成一个FB块,本例为FB400:
在静态变量区建立一个结构“T_TSAP“,包含如下变量:
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有两个前导字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP规定)和 0x02(CPU槽号)
本地 TSAP | 远程TSAP | |
ASCII | TCP-1 | TCP-1 |
Hexadecimal | E0.02.54.43.50.2D.31 | 54.43.50.2D.31 |
2) LOC_TSAP(STRING14)= 本地用户定义的ASCII字符 (默认 -> 'TCP-1')
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用两个前导符,只适用于第三方设备!如果是西门子PLC作为通信对象,则需要根据实际情况填写CPU 槽号,例如B#16#2
4) REM_TSAP (STRING16)= 远程用户定义的ASCII字符(默认 -> 'TCP-1'):
图 19: 生成T_TSAP结构
调用FB420
图 20: 调用FB420
• ID: 连接ID
• DEV_ID
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-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为CPU41x-3PN/DP
• ACTIVE: 主动或是被动建立连接, 通信双方必须一个主动,一个被动
• T_TSAP: 静态变量区的结构变量,用于ISO ON TCP 通信的TSAP地址
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• CON_DB:用UDT65生成的变量
图21: 调用FB65 "T_CON"
调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。
3.2.3 调用发送和接收程序
图22: 调用 FB63,64发送接收数据
FB63 "TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。
FB64 "TRECV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。
3.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。
1. CP342-5 作主站与FC1(DP_SEND), FC2(DP_RECV)的应用
CP342-5 是S7-300 系列的PROFIBUS 通讯模块, 带有PROFIBUS 接口, 可以作为PROFIBUS-DP 的主站也可以作为从站, 但不能同时作主站和从站, 而且只能在S7-300 的*机架上使用, 不能放在分布式从站上使用。由于S7-300 系统的I 区和Q 区有限,通讯时会有些限制;而用CP342-5 作为DP 主站和从站不一样,它对应的通讯接口区不是I 区和Q 区,而是虚拟通讯区,需要调用FC1 和FC2 建立接口区,下面以例子来介绍CP342-5 作为主站的使用方法。
2.所需硬件和软件
软件: STEP 7 V5.2
硬件:
1.PROFIBUS-DP 主站带CP342-5 的S7-300 CPU315-2DP
2.从站选用ET200M
3.MPI 网卡CP5611
4.PROFIBUS 电缆及接头
3. 网络配置图
带CP342-5 的S7 CPU315-2DP 的网络配置图如下图所示:
CP342-5 ET200M
此组态实例是选用CP342-5 接口作为主站和ET200 M 组成PROFIBUS 网络。首先,将CP342-5 插在S7-300 的*机架上,用一条PROFIBUS 总线将CP342-5 和ET200M 相连接。
4. 组态
打开SIMATIC MANAGER 软件,在FILE 菜单下选择NEW 新建一个项目,在NAME 栏中输入项目名称,将其命名为“CP342-5_master ”,在下方的Storage Location 中设置其存储位置,如下图:
在项目窗口的左侧选中该项目,按右键在弹出的下拉菜单中选择Insert New Object 和SIMATIC 300 Station 插入一个S7-300 站,则插入的S7-300 站即显示在右侧的窗口。
双击SIMATIC 300 Station 目录下的hardware 图标,打开HW configuration 进行硬件组态。在HW configuration 主界面的右侧按实际硬件安装顺序完成系统硬件组态。在菜单栏中选择“View”菜单,并在下拉菜单中选择“Catalog”打开硬件目录;在左侧目录中打开SIMATIC 300 文件夹,在RACK-300 下选择一个机架,把选用的机架拖到屏幕的左上方。同时在2 号槽和4 号槽分别插入CPU 和 CP342-5 模块。在配置CPU 时,会自动弹出一个对话框,此时不用做任何设置,直接点击OK 即可。由于在该实例中,将CP342-5 作为主站,配置CP342-5 网络设置时,先新建一条PROFIBUS 网络,然后组态PROFIBUS 属性如下图:
本例中选择传输速率为“1.5Mbps”和“DP”行规,无中继器和OBT 等网络元件,点击“OK”按钮确认。然后定义CP342-5 的站地址,本例中为2 号站,加入CP 后,双击该栏,在弹出的对话框中,选择“Operating Mode”标签,选择“DP master”模式,如下图:
点击“OK”按钮确认主站组态完成。组态从站:在HW configuration 主界面中,在右图中选择PROFIBUS DP ® DP V0 Slaves ® ET200M 如下图所示,并为其配置2 个字节个输入和2 个字节输出点,输入输出点的地址从0 开始,是虚拟地址映射区,而不占用I 区和Q 区,虚拟地址的输入区在主站上要调用FC1 (DP_SEND) 与之一一对应,虚拟地址的输出区在主站上要调用FC2 (DP_RECV) 与之一一对应,如果修改CP342-5 的从站开始地址,如输入输出从地址2 开始,相应的FC1 和FC2 对应的地址区也要相应偏移2 个字节。组态完成后下载到CPU 中,如果没有调用FC1,FC2, CP342-5 PROFIBUS 的状态等“BUSF”将闪烁,在OB1 中调用FC1,FC2 后通讯将建立。配置多个从站虚拟地址区将顺延。
5. 编程
在OB1 中调用FC1 和FC2,FC1 和FC2 的位置如右图,具体程序如下:
参数含义:
CPLADDR:CP342-5 的地址。
SEND :发送区,对应从站的输出区。
RECV:接收区,对应从站的输入区。
DONE:发送完成一次产生一个脉冲。
NDR: 接收完成一次产生一个脉冲。
ERROR:错误位。
STATUS:调用FC1,FC2 时产生的状态字。
DPSTATUS:PROFIBUS-DP 的状态字节。
从上面我们可以看出,MB20,MB21 对应从站输出的*个字节和第二个字节,MB22,MB23 对应从站输入的*个字节和第二个字节。连接多个从站时,虚拟地址将向后延续和扩大,调用FC1,FC2 只考虑虚拟地址的长度,而不会考虑各个从站的站号。如果虚拟地址的开始地址不为0,那么调用FC 的长度也将会增加,假设:虚拟地址的输入区开始为4,长度为10 个字节,那么对应的接收区偏移4 个字节相应长度为14 个字节,接收区的第5 个字节对应从站输入的*个字节,如接收区为 P#M0.0 BYTE 14 ,MB0~MB13,偏移4 个字节后,MB4~MB13 与从站虚拟输入区一一对应。编完程序下载到CPU 中,通讯区建立后,PROFIBUS 的状态灯将不会闪烁,例子程序参见光盘“ PROFIBUS ” 目录下的项目名“ CP342-5_MASTER”。
注意:
使用CP342-5 作为主站时,因为本身数据是打包发送,不需要调用SFC14, SFC15,由于CP342-5 寻址的方式是通过FC1,FC2 的调用访问从站地址,而不是直接访问I/Q 区,所以在ET200M 上不能插入智能模块,如:FM350-1、FM352 等项,所有从站的Ti To 时间保持*。