回复:轮询通信的时序控制部分TSEND指令调用问题

Siemens_高级编程

版主 西门子1847工业学习平台

  • 帖子

    32
  • 精华

    0
  • 被关注

    1

论坛等级:游士

注册时间:2021-06-16

白金 白金 如何晋级?

发布于 2025-11-04 16:34:45

4楼

展开查看
以下是引用手机用户20240320916568在2025-11-04 16:09:18的发言 >3楼

REQ信号上升,instSender会不会检查参数设置,如果不设置好DATA参数,就使REQ信号上升,instSender不会发生错误吗(比如使instSender.ERROR=True)?还是说执行instSender时,由于异步执行不会立即反馈Done结果,那么可以在后面设置DATA参数?

以下是引用Siemens_高级编程在2025-11-04 14:25:17的发言 >1楼:TSEND是异步执...

引用1楼详细内容:


TSEND是异步执行指令,如果TSEND放到某个阶段里,一旦跳出这个阶段,就无法再接收到TSEND的状态反馈,所以放在permanent 部分,使得每个周期都能扫描到

DATA 连接的缓冲区地址是固定的,但是缓冲区里的内容是变化的

当收到TSEND DONE信号时更新DATA缓冲区内容

当收到REQ上升沿信号时才发送当前缓冲区数据

REQ上升沿信号什么时候来是由你自己的程序控制的,当data里的数据准备好了再启动REQ,这个逻辑是由你的程序来实现的

即使数据没有准备好,DATA也是连接了实际缓冲区的,顶多是把这些不正确的数据发出去,有错误也是应用层解析报文的时候提示错误,TSEND本身并不会报错

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

PLC编程精英训练营

共有1541条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。