Jump to content
  • Sign in to follow this  

    西门子 SIMATIC S7-200 SMART CPU 与 S7-300 CPU 集成 PN 口的 ISO on TCP 通信

       (0 reviews)

    leikang

    S7-200 SMART CPU 与 S7-300 CPU 集成 PN 口的 ISO on TCP 通信
    S7-200 SMART CPU 与 S7-300 CPU 集成 PN 口通过 ISO on TCP 通信,需要在双方都建立连接。在 S7-300 调用 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。

    硬件和软件需求及所完成的通信任务
    本文采用 1 个 S7-300PN CPU,1 个 S7-200SMART CPU 为例,介绍它们之间的 ISO on TCP 通信。


    硬件:
    ① S7-300PN CPU (IP地址: 192.168.0.4 子网掩码: 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-300 将通信数据区 DB11 中的 200 个字节发送到 S7-200 SMART 的 VB 数据区。
    ② S7-300 读取 S7-200 SMART 中的 VB 数据区存储到 S7-1200 的数据区 DB12。

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

    cn-160-1.gif

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

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

    cn-160-2.gif

    图 2. 启用时钟位


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

    cn-160-3.gif

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

    表 1. TCON 指令参数说明

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

    3. 在 PLC_1 中创建发送数据块 DB11(接收区数据块 DB12 类似),数据块中定义 200 个字节的数组,如图 4 所示。

    cn-160-4.gif

    图 4. 创建发送数据块 DB11

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

    cn-160-5.gif

    图 5:调用 TEND 发送指令

    表 2. TSEND 指令参数说明

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

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

    cn-160-6.gif

    图 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 所示

    cn-160-7.gif

    图 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 所示

    cn-160-8.gif

    图 8:调用 TCP_RECV 接收指令

    表 5. TCP_RECV 指令参数说明

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

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

    cn-160-9.gif

    图 9:调用 TCP_SEND 发送指令

    表 6. TCP_SEND 指令参数说明

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

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

    cn-160-10.gif

    监控通信结果

    cn-160-11.gif

    图 11 监控结果

    Sign in to follow this  



    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


Apply for friendship links:WhatsApp or E-mail: [email protected]
×
×
  • Create New...