首页 > 编程 > Delphi > 正文

用Delphi开发DLL来代替8581协议控制和采集华为PSM—A10电源(二)

2019-11-18 17:59:16
字体:
来源:转载
供稿:网友
匹配地址:

交流模拟量 11个 cid1=40 cid2=41

 

一个交流屏 两路交流

 

I是所得到的包头 7E

回报350包偏移
内容
返回报地址
30-31
输出电流A
I+85~I+92
32-33
输出电流B
I+93~I+100
34-35
输出电流C
I+101~I+108
36-37
1路交流A相电压
I+17~I+24
38-39
1路交流B相电压
I+25~I+32
40-41
1路交流C相电压
I+33~I+40
42-43
1路交流输出频率
I+41~I+48
44-45
2路交流A相电压
I+51~I+58
46-47
2路交流B相电压
I+59~I+66
48-49
2路交流C相电压
I+67~I+74
50-51
2路交流输出频率
I+75~I+82

 

转化方法:
DataBuf[0] DataBuf[1] DataBuf[2] DataBuf[3] DataBuf[4] DataBuf[5] DataBuf[6] DataBuf[7]

 

 


 

floatTemp[0]       floatTemp[1]       floatTemp[2]        floatTemp[3]

 

 

                                *10  再取整

 

 

                integerTemp[0]  integerTemp[1]

 

使用Round()函数来执行取整操作

 

交流开关量:cid1=40 cid2= 43  查看现场数据得 6个字节

序号

内容

字节

1

检测的开关数量M=0

1

M+2

用户自定义状态数量P=3

1

M+3

交流切换状态(自动E0H或手动E1H)

1

M+4

照明状态(关E3H或开E2H)

1

M+5

当前工作路号

第一(E4),第二(E5),第三(E6)

1

 

 

 

 

回报350包偏移
内容
返回报地址
6.1
交流切换状态
I+19~I+20
6.2
照明状态
I+21~I+22

 

取0手动  取1自动
取0关闭  取1工作
添加循环控制的问题  出错三次抛出错误

 

 

添加双字节转换为单字节的过程
{--------------得到转化字节的过程------------------------------------}
{-------@param input1: Byte 数据高位---------------------------------}
{-------@param input2: Byte 数据低位---------------------------------}
{-------@param reAssign: Byte 得到的数据-----------------------------}
{-------2005-06-27 add by Fane---------------------------------------}
PRocedure change2to1(input1,input2:byte;var reAssign: Byte);

 

将reAssign声明为var,使用传引用方式传递参数

 

 

交流告警量:cid1=40 cid2=44  查看现场数据得 24个字节

 

序号

内容
字节

本屏交流配电系统数量M
1

1路输入线/相电压AB/A
1

1路输入线/相电压BC/B
1

1路输入线/相电压CA/C
1

1路频率
1

1路检测熔丝(或开关)数量M
1

1路用户自定义告警数量P=8
1

1路用户自定义字节
8×1

2路输入线/相电压AB/A
1

2路输入线/相电压BC/B
1

2路输入线/相电压CA/C
1

2路频率
1

2路检测熔丝(或开关)数量M
1

2路用户自定义告警数量P=0
1

A相输入电流
1

B相输入电流
1

C相输入电流
1

 

第一个自定义P=8 第2个自定义是0  注 20 20 忽略


 


上一篇:DELPHI中数据文件路径的管理

下一篇:如何使用Delphi设计强大的服务器程序

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
学习交流
热门图片

新闻热点

疑难解答

图片精选

网友关注