跳到主要内容

周期过程数据

新手知识

进了周期交换之后,控制器和设备按固定节拍互送过程数据。写 Q、读 I:Q 发给控制器,I 来自控制器。应用只改值、只读值,不要自己发周期帧。

方向​

I / Q 是视角:Q 永远是本侧输出。本产品是 IO 模块:

区对本模块
Q模块输出写,发给主站
I模块输入读,来自主站

过程区长度由配置工具 / GSDML 决定(样例常见 Q 20 字节、I 32 字节,不是唯一尺寸),落在槽 1 / 子槽 1。

和 GSDML 的 Input / Output 对上号

GSDML 里那 20 字节的 Input(设备 → 控制器)就是 SDK 的 Q(Out / ProcessData.Out[i],写的方向),GSDML 里那 32 字节的 Output(控制器 → 设备)就是 SDK 的 I(In / ProcessData.In[i],读的方向,只读)。

周期​

项值
在哪设配置工具 / 控制器组态
下限1 ms
谁发周期帧协议按组态发,应用不推帧

周期改完要重新导出,两边组态一致。已进入周期交换时不要改组态,见 发现与连接。

应用做什么​

先确认已连上(见 发现与连接),再:

  1. 按工艺 写 Q(发给控制器)
  2. 按工艺 读 I(控制器送来的)
  3. 看 IOPS 与 IOCS 判断这一拍能不能用

未连上时,写下的 Q 还在设备本地;连上后才随周期送出。不要把「本地改了」当成「控制器已经收到」。

不要做的事​

  • 不要写 I。I 只来自控制器
  • 不要把 I 抄到 Q。两边不是镜像
  • 不要在还在周期交换时停设备,见 发现与连接