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里得到:
西门子6ES5942-7UH11
图 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"的上升沿来实现断开连接操作。
描述
本条目说明了如何将一台 SIRIUS 3RW44 软启动器 作为 DP 从站连接到 S7-1200 的 CM1243-5 上,以及如何通过 S7-1200 读取 SIRIUS 3RW44 软启动器 的数据记录。
可通过 GSD 文件组态 SIRIUS 3RW44 软启动器。GSD文件可以通过条目 113630 来下载。
按照以下步骤将 SIRIUS 3RW44 软启动器的 GSD 文件集成到 STEP 7 V12 (TIA Portal) 中。
序号 步骤
1 在 STEP 7 V12 (TIA Portal) 中选择菜单 “选项 > 安装设备描述文件(GSD)”。 “安装设备描述文件” 的对话框打开。
图 01
2 在源路径中*存放 SIRIUS 3RW44软启动器 的 GSD 文件的路径。
选择软启动 SIRIUS 3RW44 的 GSD 文件并点击 “安装” 按钮来安装选择的 GSD 文件。
图 02
3 GSD 文件成功安装后,SIRIUS 3RW44 软启动器位于硬件目录 “其他现场设备 > PROFIBUS DP > Switching devices > Siemens AG > Motor starter > Direct soft starter > SIRIUS 3RW44” 。
西门子3RW4445-2BC46
图 03
4 拖拽 SIRIUS 3RW44 软启动器到网络视图。在 CM1243-5 的 PROFIBUS 接口和 SIRIUS 3RW44 软启动器之间用拖拽建立一条连接。现在 SIRIUS 3RW44 软启动器就作为 DP 从站连接到作为 DP 主站的 CM1243-5 上了。
图 04
表 01
在 S7-1200 的用户程序,例如,在OB1 中调用 “RDREC” 指令来读取软启动 SIRIUS 3RW44 的数据记录。
图 05
表 02 说明了 “RDREC” 指令的输入。
参数 数据类型 描述
REQ BOOL REQ=1:执行传送数据记录
ID HW_IO 硬件组件 (DP / PROFINET IO) 的硬件 ID
该参数自动分配,可以在组件属性或硬件组态的接口属性中找到(见图 07)。
INDEX BYTE, DINT,
INT, SINT, UINT, USINT, WORD 数据记录编号
MLEN BYTE, UINT, USINT 要读取的数据记录的较大长度
RECORD VARIANT 将读取数据记录存放到的目标区域
表 02
表 03 说明了 “RDREC” 指令的输出。
参数 数据类型 描述
VALID BOOL 已收到新的数据记录,并且有效
BUSY BOOL BUSY=1:读取过程尚未完成
ERROR BOOL ERROR=1:读取过程中发生错误
STATUS DWORD 块状态或错误信息
LEN UINT 所读取数据记录的长度
表 03
“RDREC” 指令的输入参数 ID 为 SIRIUS 3RW44软启动器(DP 从站)的硬件 ID。打开 SIRIUS 3RW44(DP 从站)的设备视图。点击软启动 SIRIUS 3RW44(DP 从站)。
在巡视窗口中可查看SIRIUS 3RW44(DP 从站)的属性,在此可找到硬件 ID。
图 07
SIRIUS 3RW44(DP 从站)软启动器的硬件 ID 以系统常量的形式存放在标准变量表中。可以在 “RDREC” 指令的输入参数 ID 上使用对应的系统常量。输入参数 ID 的数据类型 HW_IO 包含了数据类型 Hw_Interface。
图 08
注意
“RDREC” 指令的执行是异步的,这说明可能需要执行多个周期才能完成一次任务。输出参数中的 BUSY 和中间两个字节的 STATUS 用于显示任务状态。当输出参数 BUSY 值为 FALSE 时,数据记录传输完成。
西门子SITOP 6EP电源6EP1334-2AA01
西门子SITOP 6EP电源6EP1334-3BA00
西门子SITOP 6EP电源6EP1336-3BA00
西门子SITOP 6EP电源6EP1332-1SH42
西门子SITOP 6EP电源6EP1331-1SH02
西门子SITOP 6EP电源6EP1333-2BA01
西门子SITOP 6EP电源6EP1332-2BA10
西门子SITOP 6EP电源6EP1336-2BA00
西门子软起动器
3RW30471BB04
3RW30471BB14
3RW30472BB04
3RW30472BB14
3RW30141CB04
3RW30141CB14
3RW30161CB04
3RW30161CB14
3RW30241AB04
3RW30241AB05
3RW30241AB14
3RW30241AB15
3RW30251AB04
3RW30251AB05
3RW30251AB14
3RW30251AB15
3RW30261AA12
3RW30261AB04
3RW30261AB05
3RW30261AB14
3RW30261AB15
3RW30341AB04
3RW30341AB05
3RW30341AB14
3RW30341AB15
3RW30351AA12
3RW30351AB04
3RW30351AB05
3RW30351AB14
3RW30351AB15
3RW30361AB04
3RW30361AB05
3RW30361AB14
3RW30361AB15
3RW30441AB04
3RW30441AB05
3RW30441AB14
3RW30441AB15
3RW30451AA12
3RW30451AB04
3RW30451AB05
3RW30451AB14
3RW30451AB15
3RW30461AB04
3RW30461AB05
3RW30461AB14
3RW30461AB15
3RW31241CB14
3RW31241CB15
3RW31251CB14
3RW31251CB15
3RW31261CB14
3RW31261CB15
3RW33460EC34
3RW34520DC24
3RW34520DC25
3RW34520DC34
3RW34520DC35
3RW34520D4
3RW34520D5
3RW34540DC24
3RW34540DC25
3RW34540DC34
3RW34540DC35
3RW34540D5
3RW34550DC25
3RW34550DC34
3RW34550DC35
3RW34550D5
3RW34560DC34
3RW34560DC35
3RW34570DC25
3RW34580DC25
3RW34580DC34