首页 >> 程序开发 >> Delphi

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

作者:FaneAnn

匹配地址:

交流模拟量 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 忽略