admin管理员组文章数量:1631666
1 IP参数配置
为了使win10端的网络调试助手与EPICS成功通信,在配置好Vmware虚拟机的桥接网络设置后,对EPICS的IOC配置进行更改,将IOC的st.cmd中的PS1设备IP地址更改为win10端的网络IP地址:
Centos-EPICS端IP:192.168.1.5 电脑主机端IP:192.168.1.2
2网络通信实验
重新编译IOC以后执行./st.cmd
同时在电脑主机win10端打开网络调试助手,设置通信协议为TCP Server,端口号为8000:
相当于用电脑模拟温度流量检测设备,作为TCP服务器上传数据给EPICS。
通信结果:
主机端网络调试助手与虚拟机EPICS系统通信
可见通信成功,EPICS向网络调试助手发送符合协议设置的帧数据。
3自定义通信协议实验
更改proto文件的数据通信格式:
结合db文件中record写法:
通信流程:
- EPICS与PS1:192.168.1.2:8000设备连接后;
- EPICS的GetVol端口请求电压数据获取,发送0xAA 0x01 0xFF.其中AA为帧头、FF为帧尾,01代表请求电压数据;
- 温度流量检测计(网络通信助手模拟)在接收到电压读请求后发送0xAA 0x01 “%R” 0xFF.共7个字节,其中AA为帧头、FF为帧尾,01代表请求电压数据,“%R”代表单精度浮点数。
- 此时EPICS将接收到的单精度浮点电压数据“%R”更新到yyling:voltage:ai节点中。
4数据编码方法
不区分单精度/双精度或整型/短整型/长整型。
(1)%r:将整型数据直接转化成十六进制数后,直接发送。(可以用计算器算。)
示例中2是指发出去的十六进制数占2个字节(不足时补零,超出时舍弃高位溢出部分)(默认值是1),0是无符号标志。
(2)%R:将浮点数按照IEEE754编码后发送。(IEEE 754单精度浮点数转十进制 / 十进制转单精度浮点数 / 在线转换)
默认按单精度浮点数转换,因此发送4字节。(我不知道师姐为啥都是写的"%0.4R",抓包显示和"%R"结果是一样的,官方介绍里面也没有提到这样的写法,所以我觉得想要按照单精度浮点数转换的话直接写"%R"就可以了。)
(3)%f:将浮点数转换成ASCII码发送。(http://www.ab126/goju/1711.html)
%5.2f:5指整个数占5个字节(包括小数点),2值小数点后保留2位,即小数点后占2个字节。此时3.9发送时作为“03.90”来编码发送,即30332e3930。
版权声明:本文标题:桥接模式下EPICS与电脑主机建立TCP连接 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729098965a1186457.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论