Jump to content
  • Sign in to follow this  

    西门子 SIMATIC S7-200 SMART CPU 与 S7-300 CP343 进行 ISO on TCP 通信

       (0 reviews)

    leikang

    S7-200 SMART CPU 与 S7-300 CP343 进行 ISO on TCP 通信

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

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


    硬件:
    ① S7-300 CPU 和 CP343 (IP地址: 192.168.0.5 子网掩码: 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 CPU 以及 CP343 ,并为 CP343 分配网络和 IP 地址 ,如图 1 所示

    cn-159-1.gif

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

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

    cn-159-2.gif

    图 2. 启用时钟位

    2. 在 S7-300 中添加 ISO on TCP 连接,打开 "设备组态" > "网络视图" ,在窗口左上角选中 "连接",然后右键点击 CPU 建立新连接,类型选择 "ISO-on-TCP" 如图 3 所示。

    cn-159-3.gif

    图 3. 在网络视图建立新连接

    3. 在 "常规" 和 "地址详细信息" 页面配置详细连接参数如 IP 地址、TSAP 等,如图 4 所示。

    cn-159-4.gif

    图 4. 配置连接参数

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

    cn-159-5.gif

    图 5. 创建发送数据块 DB11

    5. 在 OB1 中,在 "指令树" > "通信" > "通信处理器"> "Simatic NET CP" 下,调用 AG_SEND 指令发送数据,如图 6 所示

    cn-159-6.gif

    图 6:调用 AG_SEND 发送指令

    表 1. AG_SEND 指令参数说明

    ACT // 为 1 时,启动发送作业
    ID // 连接号,要与图 3 中的连接 ID 一致
    LADDR // CP 卡硬件地址,必须填写 16 进制数据
    SEND // 发送区,包含地址和长度
    LEN // 发送的字节数
    DONE // 为 1 时,发送完成
    ERROR // 为 1 时,有故障发生
    STATUS // 状态代码

    6. 在 OB1 中,在 "指令树" > "通信" > "通信处理器"> "Simatic NET CP" 下,调用 AG_RECV 指令接收数据,如图 7 所示

    cn-159-7.gif

    图 7:调用 AG_RECV 接收指令

    表 2. AG_RECV 指令参数说明

    ID // 连接号,要与 TCON 连接参数中的连接 ID 一致
    LADDR // CP 卡硬件地址,必须填写 16 进制数据
    RECV // 接收区,包含地址和长度
    NDR // 为 1 时,接收完成
    ERROR // 为 1 时,有故障发生
    STATUS // 状态代码
    LEN // 实际接收到的数据量(以字节为单位)

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

    cn-159-8.gif

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

    表 3. ISO_CONNECT 指令参数说明

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

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

    cn-159-9.gif

    图 9:调用 TCP_RECV 接收指令

    表 4. TCP_RECV 指令参数说明

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

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

    cn-159-10.gif

    图 10:调用 TCP_SEND 发送指令

    表 5. TCP_SEND 指令参数说明

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

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

    cn-159-11.gif

    监控通信结果

    cn-159-12.gif

    图 12 监控结果

    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...