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

王朝delphi·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

匹配地址:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航