• {{item.name}}
{{item.name}}
{{item2.name}}
更多

S7-200 SMART CPU与S7-1200 进行ISO on TCP通信(S7-200 SMART 作为服务器)

star star star star star
0 分
  • 通信(通讯)
发布时间:2024年01月11日
  • 0
  • 16
S7-200 SMART CPU与S7-1200 进行ISO on TCP通信(S7-200 SMART 作为服务器)

S7-200 SMART CPU与S7-1200 CPU集成PN口的ISO on TCP通信

S7-200 SMART CPU与S7-1200 CPU 通过ISO on TCP 通信,需要在双方都建立连接。在S7-1200调用 T-block 指令(TCON, TDISCON, TSEND, TRCV) 、在S7-200SMART调用Open User Communication库指令(ISO_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV)来实现。通信方式为双边通信,因此双方的发送和接收指令必须成对出现。
注意:
S7-200 SMARTPLC V2.2 版本才开始支持ISO on TCP通信,早期版本的CPU需要升级固件后方可支持ISO on TCP。

硬件和软件需求及所完成的通信任务

硬件:
① S7-1200 CPU (IP地址:192.168.0.3 子网掩码:255.255.255.0)
② S7-200 SMART CPU (固件V2.2)(IP地址:192.168.0.2 子网掩码:255.255.255.0)
③ PC(带以太网卡)
④ TP以太网电缆
软件:
① STEP7 V13 SP1
② STEP 7 Micro/WIN SMART V2.2
所完成的通信任务:
① S7-1200 将通信数据区 DB11 中的200 个字节发送到 S7-200 SMART的VB 数据区。
② S7-1200 读取 S7-200 SMART中的VB数据区存储到S7-1200 的数据区DB12

S7-1200侧硬件组态和编程

1. 使用TIA V13 软件新建一个项目,添加1个S7-1200站点并为其分配网络和IP地址 ,如图1.所示




图1.组态S7-1200并分配IP地址

为编程方便,使用CPU属性中定义的时钟位,在设备视图双击CPU设置"系统和时钟存储器",如图2所示。

图2. 启用时钟位

2.在S7-1200 中调用建立连接指令,进入 "项目树" > " PLC_1" > "程序块" > "OB1" 主程序中,从右侧窗口 "指令"> "通信">"开放式用户通信"下调用 "TCON" 指令,配置连接参数,如图3.所示。

图3.调用"TCON"指令并配置连接参数

表1.TCON 指令参数说明

REQ// 为1时,开始建立连接
ID// 连接号,在组态窗口配置后自动生成
CONNECT// 连接数据,在组态窗口配置后自动生成
DONE// 为1时,表示已成功建立连接
BUSY// 为1时,正在建立连接
ERROR// 为1时,有故障发生
STATUS// 状态代码

3.创建发送数据块DB11(接收区数据块DB12类似),数据块中定义200个字节的数组,数据块的属性中需要取消"优化的块访问"选项。如图4. 所示。

图4.创建发送数据块DB11

4.在OB1中调用TSEND指令来发送数据,如图5.所示

图5: 调用TEND发送指令

表2.TSEND 指令参数说明

REQ// 在检测到上升沿时启动发送作业
ID// 连接号,要与TCON连接参数中的连接ID一致
LEN// 发送的字节数
DATA// 发送区,包含地址和长度
DONE// 为1时,发送完成
BUSY// 为1时,发送作业仍未完成,此时无法启动新作业
ERROR// 为1时,有故障发生
STATUS// 状态代码


5.在OB1中调用TRCV指令来接收数据,如图6.所示

图6: 调用TRCV接收指令

表3.TRCV 指令参数说明

EN_R// 为1时,开始接收
ID// 连接号,要与TCON连接参数中的连接ID一致
LEN// 接收长度
DATA// 接收区,包含地址和长度
NDR// 为1时,接收完成
BUSY// 为1时,正在进行接收作业
ERROR// 为1时,有故障发生
STATUS// 状态代码
RCVD_LEN// 实际接收到的数据量(以字节为单位)

S7-200 SMART侧编程

1.调用ISO_CONNECT指令建立连接,伙伴TSAP(RemTsap)与本地TSAP(LocTsap)必须与S7-300中的连接配置交叉对应。如图7.所示

图7: 调用ISO_CONNECT建立连接指令

表4.ISO_CONNECT指令参数说明

Req// 为1时,开始建立连接
Active// 是否主动建立连接,必须与S7-300中的连接配置相反。
ConnID// 连接ID
RemTsap// 伙伴TASP
LocTsap// 本地TSAP
DONE// 为1时,表示已成功建立连接
BUSY// 为1时,正在建立连接
ERROR// 为1时,有故障发生
STATUS// 状态代码

2.调用TCP_RECV指令接收数据。如图8.所示

图8: 调用TCP_RECV接收指令

表5. TCP_RECV 指令参数说明

ConnID//连接号,要与ISO_CONNECT指令中填写的的连接ID一致
MaxLen// 接收长度(超出此长度的消息无法接收)
DataPtr// 接收区,包含地址和长度
Done// 为1时,接收完成
Busy// 为1时,正在进行接收作业
Error// 为1时,有故障发生
Status// 状态代码
Length// 接收到的数据长度(字节)

3.调用TCP_SEND指令发送数据。如图9.所示

图9: 调用TCP_SEND发送指令

表6. TCP_SEND 指令参数说明

Req// 在检测到上升沿时启动发送作业
ConnID// 连接号,要与ISO_CONNECT指令中填写的的连接ID一致
Datalen// 作业要发送的最大字节数
DataPtr// 发送区,包含地址和长度
Done// 为1时,接收完成
Busy// 为1时,发送作业仍未完成,此时无法启动新作业
Error// 为1时,有故障发生
Status// 状态代码

4.为通信指令分配库存储器。如图10所示

监控通信结果

图11 监控结果


剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。