EPICS与温度流量检测设备TCP通信

 该实验需保证EPICS系统与实际采集设备在同一局域网下,参考

Vmware centos桥接模式网络设置_艾黄泽的博客-CSDN博客

1 STM32通信协议更改

STM32端的通信协议需与EPICS的proto文件中定义的协议保持一致,原STM32程序与Labview的通信模式为一帧数据包括所有的温度与流量,如何在此基础上采用proto文件进行解析暂时不了解。

所以在STM32中添加与EPICS协议通信的格式,并设置开关按钮对两种通信模式进行切换。

温度流量检测装置测试用IP:192.168.1.11

在STM32中增加与EPICS通信的程序:

 

STM32与EPICS通信数据解析

流程为:在EPICS通信模式下,STM32接收到一帧EPICS发送过来的数据,通过解析帧头帧尾,若符合通信协议,则判断Tcp_Recv_EPICS[1]的数字,来判断EPICS需要读取的流量或温度序号。

表1 EPICS查询模式下查询码对应变量

Tcp_Recv_EPICS[1]

0x00

0x01

0x02

0x03

0x04

0x05

0x06

0x07

发送4字节浮点数

Flow1

Flow2

Flow3

Flow4

Flow5

Flow6

Flow7

Flow8

Tcp_Recv_EPICS[1]

0x08

0x09

0x0A

0x0B

0x0C

0x0D

0x0E

0x0F

发送4字节浮点数

Tem1

Tem2

Tem3

Tem4

Tem5

Tem6

Tem7

Tem8

2 EPICS端程序编写与界面设计

EPICS中修改对应的flow_tem.db、flow_tem.proto、st.cmd程序:

1.	record(ai, "FT_Flow1") {    
2.	  field(DESC, "get Flow1")    
3.	  field(DTYP, "stream")    
4.	  field(INP, "@flow_tem.proto GetFlow1 flow_tem")    
5.	  field(EGU, "L/min")    
6.	  field(LOPR, "5")    
7.	  field(HOPR, "40")    
8.	  field(SCAN, ".1 second")    
9.	}    
10.	    
11.	record(ai, "FT_Flow2") {    
12.	  field(DESC, "get Flow2")    
13.	  field(DTYP, "stream")    
14.	  field(INP, "@flow_tem.proto GetFlow2 flow_tem")    
15.	  field(EGU, "L/min")    
16.	  field(LOPR, "5")    
17.	  field(HOPR, "40")    
18.	  field(SCAN, ".1 second")    
19.	}   

flow_tem.db文件部分代码

1.	GetFlow1 {  
2.	    out 0xAA 0x00 0xFF;  
3.	    in  0xAA 0x00 "%R" 0xFF;  
4.	}  
5.	GetFlow2 {  
6.	    out 0xAA 0x01 0xFF;  
7.	    in  0xAA 0x01 "%R" 0xFF;  
8.	}  
9.	GetFlow3 {  
10.	    out 0xAA 0x02 0xFF;  
11.	    in  0xAA 0x02 "%R" 0xFF;  
12.	}  
13.	GetFlow4 {  
14.	    out 0xAA 0x03 0xFF;  
15.	    in  0xAA 0x03 "%R" 0xFF;  

flow_tem.proto文件部分代码

st.cmd文件中添加对应的db路径与flow_tem协议IP地址与端口号

       在CSS中创建新的OPI,采用曲线控件与文本控件,将控件对应的PV节点设置为flow_tem.db文件中对应的文件命名,数据接收正常:

CSS界面

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值