免费发布

在S7-1500中指令TSEND_C and TRCV_C如何使用?

更新:2025-04-19 07:05 IP:183.193.26.21 浏览:1次

指令"TSEND_C"和"TRCV_C"组态并建立 TCP,ISO-on-TCP和UDP连接。一旦连接被组态和建立会自动由CPU维护和监控。

指令被异步执行并有以下功能:

  • 组态并建立一个通信连接。

  • 通过现有的连接发送和接收数据。

  • 断开或重置通信连接。

  • 通信连接通过CONT=1组态和建立。

    发送任务在REQ参数中检测到上升沿时会被执行。

    如果参数EN_R的值被设定"1",数据接收会被使能。

    下面考虑编程建立连接的情形下指令的行为, 使用了参数CONT/REQ和CONT/NDR。

    有效性
    本条目对于V2.0版本的指令有效。在附件中使用了旧版本V1.4指令。CP 443-1 作为通信伙伴使用,会尽可能频繁的发送数据。 ("TRCV_C"相关).

    TSEND_C
    只要CONT参数 = 0,REQ参数就不会有影响。

    参数REQ在CONT之后置位 

    TSEND_C指令在CONT = 1之前,在STATUS送出 "7000" ,从CONT置位开始建立连。在连接开始建立时STATUS参数输出值为“7001”,保持一个程序周期 ;然后,STATUS参数的值输出“7002”,直到连接被建立。当连接被建立后,STATUS参数的值输出"7004"。如果此后如果参数REQ设为1,STATUS参数的值输出 "7005",并且同时输出BUSY=1直到Send任务完成。当数据被成功发送时,会输出以下的值:STATUS=0,DONE=1和BUSY=0.。然后STATUS参数的值就会变回"7004",这就是说TSEND_C指令不再处于发送模式。如果需要触发一个新的发送任务,REQ参数必须复位一个周期然后再次置位。

       


    图. 1

    参数CONT和REQ同时被置位 
    "TSEND_C"指令输出STATUS "7000" ,直到CONT=1和REQ=1被置位而连接开始建立。 开始建立连接时,STATUS参数的值输出"7001"持续一个周期,然后STATUS参数的值输出"7002"直到连接被建立。当连接建立完成后,STATUS参数的值为“1”并且指令开始发送数据,同时设置BUSY=1。随后的程序循环中,STATUS参数的值输出 “7005”同时BUSY=1,直到发送任务完成。当数据发送完成,输出下列值:STATUS=0,DONE=1,BUSY=0。然后指令的STATUS参数的值会再次为“7004”,表明指令不再处于发送模式。如需开始新的发送任务,REQ参数必须复位一个周期然后再置位。     

       


    图. 2

    图. 5 显示了连接的断开过程。当连接正在被断开时,指令TSEND_C 在STATUS参数的值为“7003”,直到连接被成功断开。成功断开连接会在STATUS参数报“3”。然后TSEND_C指令会在STATUS参数输出“7000” ,表明当前没有任务在运行。

    TRCV_C
    只要CONT参数不置位,EN_R参数就没有影响。

    参数CONT先置位而EN_R后置位
    TRCV_C指令发送STATUS“7000”直到CONT=1被设定,同时连接开始建立。当连接被建立时,STATUS参数的的值输出“7001”一个周期。然后STATUS参数的值会为“7002”直到连接被建立。当连接被建立之后,STATUS参数的值输出“7004”。 如果参数EN_R=1 被设定,STATUS参数的值输出"7006" ,同时指令就会输出BUSY=1,直到接收任务完成。当数据被完全接收之后,输出以下值:STATUS=0,NDR=1同时BUSY=0。只要 EN_R=1,指令的在STATUS参数的输出值就会为"7006";意味着继续准备接收而 BUSY=1。下面的例子中图示有接收第二个消息的状态。

       


    图. 3

    参数CONT 和EN_R 同时置位
     "TRCV_C"指令输出 STATUS "7000" 。 在CONT=1和EN_R=1 同时开始建立连接,STATUS参数的值输出 "7001" 一个周期, 随后TSTATUS参数的值会为“7002”直到连接被建立。当连接被建立后,STATUS参数的值输出"1"而BUSY=1 ,指令准备接受数据。随后其他程序循环STATUS参数的值输出"7006" 且BUSY=1,直到接收任务完成。当数据被传输成功之后,输出下列数值:STATUS=0,NDR=1,BUSY=0。只要EN_R=1,指令在STATUS参数的输出就会为"7006"且BUSY=1,进入继续准备接收状态。下面的例子中图示有接收第二个消息的状态。

       


    图. 4

    TRCV的特殊点
    当EN_R参数被复位,TRCV_C指令会保持准备接收数据,直到数据再次开始被接收。保持STATUS输出值为"7006",且BUSY=1直到数据被成功接收,而后输出:STATUS=0,NDR=1同时BUSY=0。最后指令在STATUS的输出值"7004" 同时BUSY=0。

    当CONT参数被复位,指令断开连接。在断开连接的过程中,指令TRCV_C在STATUS的值为"7003" 直到连接被成功断开,此时STATUS参数输出"3" 。最后 TRCV_C在STATUS参数输出 "7000" ;这意味着当前没有任务在运行。

       


    图. 5

    在同一连接使用TSEND_C和TRCV_C
    如果TSEND_C和TRCV_C指令使用同一个连接ID ,两个带有控制功能的指令 (连接建立和断开)就会在一个连接被使能。如果不正确使用就会导致错误。(见图.6)

    指令在STATUS参数的值与单独使用指令是不同的。因为TSEND_C在TRCV_C前调用,TRCV_C指令在STATUS 参数的值会被影响。在连接建立时,TRCV_C指令不会将STATUS "7001"作为中间状态输出。此外,指令TSEND_C会在TRCV_C前输出“7004”代表连接建立。会在后一程序循环中报“7002”。只有在随后的循环中TRCV_C指令会报STATUS“1”,代表成功建立了连接。

    如果CONT参数在TSEND_C或TRCV_C上被复位,即使CONT参数在另一个指令保持置位,连接还是会被断开。当对于正在进行连接断开时,TSEND_C指令在STATUS参数输出“7003”,而TRCV_C依旧会在STATUS参数输出"7004"。当连接断开后,TRCV输出错误码STATUS = 80AA,然后TRCV_C会尝试重新建立连接。
       


    图. 6

    建议使用下列组合在同一连接上发送和接收数据:

  • TSEND_C和TRCV

  • TSEND和TRCV_C


  • 供应商:
    上海工智达电气技术有限公司
    企业认证
    所在地
    上海市松江区科技园区平原街880弄65号201
    联系电话
    13681875601
    联系人
    田礼科
    手机号
    13681875601
    让卖家联系我
    13681875601
    关于上海工智达电气技术有限公司商铺首页 | 更多产品 | 黄页介绍
    主要经营:西门子PLC HMI 工业软件 电线电缆 变频器 伺服数控系统

    上海工智达电气技术有限公司成立于2024年,公司下设技术部、销售部、维修部、物流部、等专职部门。公司为自动化控制以及电气传动领域产品销售、技术服务、技术培训以及项目咨询为一体的企业。致力成为行业内优秀的自动化技术服务商。

     

    公司定位------做客户贴心的自动化专家,提供全系列,全方位,全周期的自动化产品和技术服务!——定位于自动化领域,突显于专业化水准
     

    技术支持------公司拥有完整的技术队伍 (各类专业人员),经过10多年的西门子公司产品应用技术沉淀,可为用户提供强有力的广 ...

    内容声明:顺企网为第三方交易平台及互联网信息服务提供者,顺企网所展示的信息内容系由上海工智达电气技术有限公司经营者发布,其真实性、准确性和合法性均由店铺经营者负责。顺企网提醒您购买前注意谨慎核实,如您对信息有任何疑问的,请在购买前通过电话与商家沟通确认顺企网存在海量企业商铺和供求信息,如您发现店铺内有任何违法/侵权信息,请立即向顺企网举报并提供有效线索。
    我们的产品
    顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
    免责声明:本站信息由企业注册和来自工商局网站, 本站完全免费,交易请核实资质,谨防诈骗   法律声明  联系顺企网
    ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 互联网药品信息许可证:(粤)—经营性—2023—0112 / 粤公网安备 44030702000007号
    © 11467.com 顺企网版权所有 发布批发采购信息、查询企业黄页,上顺企网