尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ABAP 里没有 HDLC,但可以接住 HDLC,从数据链路层协议到 SAP 设备集成的完整设计

ABAP 里没有 HDLC,但可以接住 HDLC,从数据链路层协议到 SAP 设备集成的完整设计 今天正在讨论的这个问题很有代表性。前面研究计算机网络时会碰到 HDLC,回到 SAP 开发环境以后,很自然会产生一个联想,ABAP 里面有没有类似 HDLC 的东西,能不能像处理 HTTP、RFC、OData 一样直接处理 HDLC 帧。答案需要分成两个层次来看。如果问的是 ABAP 平台有没有一个和 HDLC 对等的标准通信协议,那么答案是没有。SAP ABAP 并不存在一个名为 HDLC Framework、HDLC Channel 或 HDLC API 的标准组件。如果问的是 ABAP 能不能实现某些和 HDLC 很相似的事情,例如帧边界识别、二进制报文处理、校验、双向通信、设备协议解析,那么答案又变成了可以,而且在传统 SAP ABAP On-Premise 环境里,借助 ABAP Push Channel 的 TCP Socket 能力,确实已经非常接近设备协议开发所需要的编程模型。SAP 官方文档明确说明,ABAP Push Channels 支持 WebSocket 与 TCP Socket 两种连接类型,其中 TCP Socket 可以让 AS ABAP 与 PLC、嵌入式设备以及其他不支持 WebSocket 的智能设备直接进行原生 TCP/IP 通信。问题真正容易混淆的地方,是 HDLC 与 ABAP 根本不在同一个技术层次。HDLC 全称是 High-Level Data Link Control,它属于数据链路层协议家族。它关心的是一串连续传输的二进制位如何被组织成一个完整 Frame,帧从哪里开始,在哪里结束,目标是谁,当前是什么控制类型,传输过程中有没有发生错误。以 HDLC 风格的帧来看,可以抽象成下面这种关系。
返回列表