RTX64 中的 EtherCAT COM 埠

EtherCAT COM 埠是 EtherCAT 装置上的虚拟COM 埠,可供应用程式使用,就如同使用电脑上的 COM 埠一样。某些 EtherCAT 从属装置有可连接至其他 COM 埠装置的 COM 埠。透过 EtherCAT 连接 COM 埠,应用程式可使用 KINGSTAR COM 埠 API 来控制这些装置,这些功能皆支援 RTX64KINGSTAR 应用程式使用。而KINGSTAR COM 埠 API 与 Windows COM API 相容。

欲使用 EtherCAT COM 埠,需具备含 EtherCAT 及 COM 埠的 EtherCAT 耦合器,此耦合器透过 EtherCAT 连接电脑,而透过 COM 埠连接 COM 埠装置。

以下使用 ModSim、KINGSTAR Demo 以及 KINGSTAR COM 埠范例展示 EtherCAT COM 埠功能。ModSim 为 WinTECH 用来与 COM 埠通讯的程式。KINGSTAR Demo 用以控制 EtherCAT 的连接,使用 KINGSTAR Demo 的原因为 KINGSTAR COM 埠范例程式不提供 EtherCAT 的连接,其仅提供 COM 埠的通讯,目的为使 COM 埠作为一独立介面,在没有 KINGSTAR API 时亦可被任何应用程式使用。此法的效益为,一旦 EtherCAT 连接上,任何应用程式皆可访问 COM 埠。当使用 COM 埠时可创建以下两种应用程式:一个给 EtherCAT 连接用;另一个给 COM 埠控制用,亦可根据需要将连接功能和 COM 埠控制合并到一个应用程式中。

注意:ModSim 为 WinTECH Software Design 的商标,正式官网请至: https://www.win-tech.com/

使用 KINGSTAR COM 埠范例程式

下例中的 KINGSTAR COM 埠范例为连接至 COM 埠装置的 COM6 埠。其从 ModSim 读取一个值并将其增加 1。

欲执行此范例程式:

  1. 连接您的 EtherCAT 耦合器至 COM 埠装置。此范例中使用 Beckhoff EK1100 为 EtherCAT 耦合器;Beckhoff EL-6021 为 COM 埠装置。
  2. 连接您的 EtherCAT 耦合器至 KINGSTAR 总线网路。
  3. 连接您的 COM 埠装置至您的电脑。
  4. 在工作列点选 Start > KINGSTAR Runtime > KINGSTAR Configuration Tool
  5. KINGSTAR Configuration Tool 开启后,点选 Connect。若连接成功,硬体将会显示于 Project Configuration 中。
  6. EtherCAT 连结建立完成后,打开位在 C:\Users\Public\Public Documents\IntervalZero\KINGSTAR SDK\<Version Number>\Samples\ComSample\ComSample.sln 的 COM 埠范例 Visual Studio 专案档。
  7. 注意:档案总管 (File Explorer) 有两个路径:阶层路径 (hierarchy) 与完整路径 (full path)。阶层路径显示在地址栏中;完整路径显示在档案总管上方。右键点击 ComSample.sln 后点选 属性 (Properties) ,将可看见位置 (Location) C:\Users\Public\Documents\IntervalZero\KINGSTAR SDK\<Version Number>\Samples\ComSample\,此即为完整路径;而注意阶层路径为 Public Documents。若使用非英文的 Windows 系统,而需要复制贴上路径至地址栏中以加快查找范例速度,则请务必使用完整路径;若想要透过点击浏览范例档案夹,则请使用阶层路径。对于英文版 Windows,档案夹重新导向是自动完成的,因此即使贴上阶层路径,档案总管也可以将您导至所查询的范例。

  8. 在 Visual Studio 中的 方案总管 (Solution Explorer),双击 ComSample.cppModbus.cpp
  9. 启动 ModSim。
  10. 在 ModSim 中的档案 (File) 选单中点选新增 (New)。
  11. 连接 (Connection) 选单中点选连接 (Connect) > Port 6
  12. Comm Port 6 设定 对话框中,确保设定与 Modbus.cpp 中的 HANDLE RtModbusOpen 块设置相同。
  13. 鲍率: 9600

    资料位元:8

    停止位元:1

    同位:奇同位

  14. Comm Port 6 设定 对话框中的硬体流程控制区,将 Delay ms after RTS before transmitting first character Delay ms after last character before releasing RTS 设置为 100,点选 OK
  15. 在 Visual Studio 中的工具列点选英特蒙即时除错 (IntervalZero Real-time Debugger),或按 F5 键以执行范例。
  16. 范例启动后,开启 RtxServer 视窗并点击读取结果 (Read Result)。由左至右共有三个值:读取结果、错误码、值。

 

COM 埠 API 函式

KINGSTAR COM 埠函式的运作方式与 RTX64 函式和微软 (Microsoft) 通讯函式相同。下表列出相对应的函式:

KINGSTAR COM 埠函式 对应函式 连接来源
KsCreateComm CreateFile RTX64
KsCloseComm CloseHandle RTX64
KsReadFile ReadFile RTX64
KsWriteFile WriteFile RTX64
KsBuildCommDCB BuildCommDCBA Microsoft
KsClearCommBreak ClearCommBreak Microsoft
KsClearCommError ClearCommError Microsoft
KsEscapeCommFunction EscapeCommFunction Microsoft
KsGetCommMask GetCommMask Microsoft
KsGetCommModemStatus GetCommModemStatus Microsoft
KsGetCommProperties GetCommProperties Microsoft
KsGetCommState GetCommState Microsoft
KsGetCommTimeouts GetCommTimeouts Microsoft
KsPurgeComm PurgeComm Microsoft
KsSetCommBreak SetCommBreak Microsoft
KsSetCommMask SetCommMask Microsoft
KsSetCommState SetCommState Microsoft
KsSetCommTimeouts SetCommTimeouts Microsoft
KsSetupComm SetupComm Microsoft
KsTransmitCommChar TransmitCommChar Microsoft
KsWaitCommEvent WaitCommEvent Microsoft
KsGetOverlappedResult GetOverlappedResult Microsoft