




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
海盐涵普控源动态库接口说明文档由于动态库为Delphi所写,所以提供Delphi函数的接口,函数所用的参数类型都为整型和单精度类型,对其他程序语言的兼容性应该没有问题。所以下面对动态库接口的各个函数的说明都是用Delphi定义的。1、 信号源升源函数1) 三相升源函数,早期C型和D型台体升源函数:OutPutData_gSub(pLngAjust:LongInt; pLngSourceType:LongInt;pIntComPort:LongInt; pIntPhase:LongInt;pIntStatus:LongInt; pIntSequence:LongInt;pSngVoltage:Single; pSngCurrent:Single;pSngFrequency:Single; pIntIABC:LongInt;pIntIB:LongInt; pIntLC:LongInt;pIntWave:LongInt; pIntWaveTimes:LongInt;pLngUWave:LongInt; pLngIWave:LongInt;Var pDelay_Time:DelayTime):LongInt;Stdcall;export; 函数相应参数说明: pLngAjust - 是否对输出作自动调整,1-调整,0-不调整。 pLngSourceType -信号源类型l 1、2为C形输出的信号源,l 3为D输出的信号源,l 4为DSP信号源(此处无效) 参数说明:由于C型为2000年以前的老台体,现在已经很少,所以现在此函数主要用来控制D型台体,而Dsp型则用函数DspOutPut函数来实现(下文会有详细说明)。 pIntComPort - 台体通讯用的串口 发送时为LongInt类型 即Com1传送 1 ,以此类推。pIntPhase - 相线 l 1表示3P3W(三相三线有功)l 2表示3p3w(60Var)(三相三线60度无功)l 3表示3p3w(90Var)(三相三线90度无功)l 4表示3p3w(正弦Var)(三相三线正弦无功)l 5表示3P4W(三相四线有功)l 6表示3p4w(90Var)(三相四线90度无功)l 7表示3p4w(正弦Var)(三相四线正弦无功) pIntStatus - 测试状态l 0 - 正向有功l 1 - 反向有功l 2 - 正向无功l 3 - 反向无功 pIntSequence - 相序l 1 - 正相序l 2 - 逆相序 pSngVoltage,pSngCurrent,pSngFrequency 为电压,电流及其频率, 其发送格式都为单精度Single类型 其输入的数值为电表的额定电压、电流即频率数值。 pIntIABC - 电流相别l 0 - 表示ABC相三相电流输出l 1 - 表示A相电流分相输出l 2 - 表示B相电流分相输出l 3 - 表示C相电流分相输出 pIntIB - 电流负载 此函数输出格式为额定电流的百分比。 例如:电表标定电流为5A,最大电流为20A 如果要升10A电流,则电流负载参数 pIntIB的输出值为200. pIntLC - 功率因数 由于功率因数需要传递的是1.0L、0.5C等,但是函数中的 此参数pIntLC传递的是LongInt类型,所以必须把需要传 递的功率因数进行一下转换。转换格式如下: 如果是 1.0L,换算公式为 (1.0*1000)*10+1=10001 0.5C,换算公司为 (0.5*1000)*10+2=5002 以上换算过程中,L表示1,C表示2. 这里给一个Vb的换算过程: lStrLC = 0.5L (此处为升源所需要的功率因数) pIntLC = Val(Mid(lStrLC, 1, Len(lStrLC) - 1) * 1000 If Mid(lStrLC, Len(lStrLC), 1) = L Then lIntLC = lIntLC * 10 + 1 ElseIf Mid(lStrLC, Len(lStrLC), 1) = C Then lIntLC = lIntLC * 10 + 2 End If pIntWave - 输出的波形类别l 1、正弦波l 2、次群波(奇次谐波)l 3、谐波l 4、可控硅波(偶次谐波) 一般的台体上,此参数都选择1(正弦波),其他波形都必 须是台体硬件支持才能实现,否则无效。 pIntWaveTimes - 谐波次数 pLngUWave,pLngIWave - 电压、电流谐波时的百分含量 此参数中,传递的是三相电压、电流的百分含量,所以三相的 含量必须组合在一起转换成LongInt类型进行赋值传递。 例如:电压、电流含量为1%,则传递值为 010101 10101 电压、电流含量为5%,则传递值为 050505 50505 电压、电流含量10%,则传递值为 101010101010 以此类推。 pDelay_Time - 控源延时,此参数为一个结构体(定义在附注中)。 该结构体中含有两个LongInt类型参数:l pLngSeatdyTime 为台体升源稳定延时l pLngAdjustTime 为台体信号源调整延时2) 三相升源函数,Dsp型信号源升源函数DspOutput(pLngAdjust:LongInt; pIntComPort:LongInt; pIntID:LongInt; PhaseWire:LongInt; Frequency:Single; U1:Single; U2:Single; U3:Single; I1:Single; I2:Single; I3:Single; DUAB:Single; DUAC:Single; DU1:Single; DU2:Single; DU3:Single; WaveType:LongInt; Var pDelay_Time:DelayTime):LongInt; Stdcall;export; 函数相应参数说明: pLngAdjust和pIntComPort两个参数跟前面定义内容一样。 pIntID 为参数保留字,传递 1 即可。 phaseWire - 相别 参照OutPutDate_gSub函数中的pIntPhase参数 同时,单相Dsp也是用这个函数输出,只需要这里的相别 在pIntPhase的基础上增加两种,如下:l 8 单相有功l 9 单相无功 Frequency、U1、U2、U3、I1、I2、I3为额定的频率、电压和电流值 传递类型为单精度Single类型。 DUAB、DUAC 为电压Uab和电压Uac直接的夹角。正相序时,夹角为120和240,逆相序时为240和120(以上为平衡输出时的夹角) DU1、DU2、DU3 为A、B、C三相电压和电流之间的夹角。 以上各个夹角的数值范围为(0359.99)之间。为Single单精度类型 pDelay_Time - 参照OutPutDate_gSub中的相同参数说明。 WaveType - 输出的波形类别 参照OutPutData_gSub函数中的pIntWave参数。3) 单相Dsp升源函数。单相Dsp升源函数同三相的Dsp升源函数,唯一不同的是升源时,相别phaseWire必须使用单相有功或者无功。具体传送值在上面三相Dsp升源函数中做了具体说明。4) 单相LED显示配3801标准表升源函数SingleRaiseVA(pIntComPort:LongInt; pSngVoltage:Single; pSngCurrent:Single; pSngFreq:LongInt; pIntPF:LongInt; pIntIB:LongInt; pSngMaxVoltage:Single; pIntWaveType:LongInt; pIntWaveTimes:LongInt):LongInt;Stdcall;export; 函数参数说明: pIntComPort的定义及传送值跟上面函数一致。 pSngVoltage、pSngCurrent、pSngFreq为额定电压、电流和频率 pIntPF为功率因数,需要换算,换算方法跟OutPutData_gSub函数 的pIntLC参数定义一样。 pIntIB为电流负载,使用跟OutPutData_gSub函数的pIntIB参数一样. pSngMaxVoltage - 输出的最大电压,根据标准表3801的不同,分为 220*1.2=264和220*1.3=286两种。 pIntWaveType - 波形类别,参照上面函数相同参数定义。 pIntWaveTimes - 谐波次数,当参数pIntWaveType为1(正弦波) 时,改参数为0.2、 信号源暂停函数1) 三相暂停函数,早期C型和D型台体暂停函数Source_Pause_gSub(pIntComPort:LongInt);stdcall;export; 函数说明:该函数使用是,只需要传递串口号即可,串口号的传递方式 参照上面相同函数的使用。2) 三相Dsp信号源的暂停函数由于Dsp信号源使用的Modbus规约编译,所以三相Dsp暂停函数跟Dsp的升源函数相同,不同的时,暂停时,只需要把升源函数中的电流赋值为0即可。3) 单相Dsp信号源的暂停函数同2 4) 单相LED配3801标准表的暂停函数 SinglePause(pIntComPort :LongInt; pSngVoltage:Single):LongInt ;stdcall;export; 函数说明:串口参数的使用跟上面的相同,只是暂停时,需要输入参数 pSngVoltage为0即可。3、 信号源降源函数1) 三相暂停函数,早期C型和D型台体暂停函数 SourceClear_Fun(pIntComPort:LongInt):LongInt;stdcall;export; 函数说明:此函数为降源命令,只需要传递一个串口值就行2) 三相Dsp信号源的降源函数DSP信号源降源命令跟升源命令一样,只是在降源的时候,三相电压电流赋值都为0就行。3) 单相Dsp信号源的降源函数同2)4) 单相LED配3801标准表的暂停函数 SingleClear(pIntComPort :LongInt):LongInt ;stdcall;export; 函数说明:此函数为单相普通信号源降源命令,降源是只需要使用 次函数并传递一个串口值就行。4、 台体8000板(误差计数器)控制函数(适用所有台体)1) 函数ErrorOrder_gFun,8000板(误差计数器)通讯命令ErrorOrder_gFun(pIntComPort:LongInt; pIntID:LongInt;pIntAddress:LongInt; pIntTime:LongInt;var pUdtAnswer:Answer):LongInt;Stdcall;export; 函数说明如下: pIntComPort - 串口,使用跟上面函数说明一样。 pIntID - 命令控制字 2 :读误差。 3 :寻标记准备(启潜动功能)111 4 :寻标记开始(启潜动功能)222 5 :读取寻标记结果(启潜动功能) 6 :寻标记结束(启潜动功能) 7 :读取启、潜动开门脉冲(启潜动功能) 8 :读取启、潜动结果(启潜动功能) 9 :8000板状态查询(测试过程基本不使用)10 :读取标准表脉冲 11 :8000板上485通道接通 12 :8000板上485通道断开13 :打通第一通道。14 :打通第二通道。 15 :打通第三通道 16 :打通第四通道 17 :打通第五通道 18 :打通第六通道 19 :打通第七通道 20 :打通第八通道 21 :光电脉冲输入22 :表脉冲输入28 :单相电流双回路,12回路切换29 :单相电流双回路,34回路切换30 :单相电流双回路,1234回路切换 pIntAddress -误差计算器序号(即但前表位号) pIntTime - 保留字,默认为0 pUdtAnswer - 返回误差值(结构体),其中参数StrTimes为当前读取误差的次数,StrAnswer为当前读取误差。可以参照 附录1注:由于按照国网增加了双回路,切换台体12,34回路的时候,参数pIntAddress为定值250. 函数返回值为-1是表示成功。潜起动过程:寻标:先发,再发(两个一起的)发,读结果全部表位寻标完成,发,潜起动开始发,读每个表位潜起结果,所有表结果,发,结束命令不寻标:先发,再发(两个一起的),发,潜起动开始发,读每个表位潜起结果,所有表结果,发,结束命令2) 函数ErrorCircles_gFun,误差测试圈数设置ErrorCircles_gFun(pIntComPort:LongInt; pIntAddress:LongInt; pIntCircles:LongInt; pLngPules:LongInt; pSngErrorMax:Single, var pUdtAnswer:Answer; var pUdtPules:Pules):LongInt;Stdcall;export;函数说明如下: pIntComPort - 串口,使用跟上面函数说明一样。 pIntAddress -误差计算器序号(即但前表位号) pIntCircles - 设置检验误差圈数 pLngPules - 设置检验理论脉冲数 pSngErrorMax - 最大误差限 pUdtAnswer - 命令返回值,保留 pUdtPules - 保留,默认结构体内参数值都为0或者13) 函数ErrorPules_gFun,误差计算器进行圈转数与脉冲数的比较改命令在目前台体上的8000板(误差计算器)中已经停止使用。5、 信号源幅值调整,必须和升源命令配合使用。 Adjust_Fun(pLngSourceType:LongInt; pIntComPort : LongInt):LongInt;Stdcall;export;函数说明如下: pLngSourceType,pIntComPort 参数定义使用如上面升源命令中方法一样,请参照上面说明。 批注:此函数使用是,必须配合升源函数一起使用,而且仅仅在升源函数 在升源过程中不进行幅值调整时才能使用(即升源函数中的参数pLngAjust为0时,如果该参数为1,请不要在升源后再对信号源幅值进行调整)。6、 读取标准表函数 OperationHC_Fun(pLngSourceType: LongInt; pIntComPort:LongInt; IntHcAddress:LongInt; IntCommandID : LongInt; IntData:LongInt; varpStrData:Standard):LongInt;stdcall;export;函数说明如下: pLngSourceType,pIntComPort参数定义使用如上面升源命令中方法一样,请参照上面说明。 IntHcAddress - 标准表地址,默认为55 IntCommandID - 控制命令字 1 :联机(保留字) 2 :脱机(保留字) 3 :读取标准表显示值 4 :标准表有功输出及电流输出档位 lIntID = 10 10A档位 lIntID = 5 5A档位 lIntID = 1 1A档位 lIntID = 0 自动档位 5 :标准表无功输出及电流输出档位 lIntID = 10 10A档位 lIntID = 5 5A档位 lIntID = 1 1A档位 lIntID = 0 自动档位 6 :设置标准表相线(phaseWire) lIntID = 1 3p4w(三相四线有功/正弦无功) lIntID = 2 3p3w(三相三线有功/正弦无功) lIntID = 3 3p4w(三相四线90度无功) lIntID = 4 3p3w(三相三线60度无功) lIntID = 5 3p3w(三相三线90度无功) 7 :保留字 8 :保留字 9 :设置标准显示电流档位 lIntID = 100 100A档位 lIntID = 10 10A档位 lIntID = 1 1A档位 10 :保留字 pStrData - 读取标准表返回当前测量值(结构体) 具体参数定义,请参照附录1.7、 日计时(秒脉冲)控制函数 由于台体测试秒脉冲使用的是公司生产的时钟晶振仪HPU-1012,此仪器测 试时产生的高频脉冲和台体上测试误差产生的高频脉冲不能通用,所以在 测试日计时(秒脉冲)的时候,先要对台体高频信号进行切换。相应函数: Procedure Ini_SecPules(pIntComPort:LongInt;pIntID:LongInt);stdcall;export 函数说明:此函数没有返回值。 pIntComPort - 请参照上面函数相同参数定义 pIntID - 1 表示切换到秒脉冲测试状态 0 表示切换到误差测试状态8、 日计时(秒脉冲)误差读取函数 Function Error_SecPules(pIntComPort:LongInt; pIntAddress:LongInt;pSngPules:Single; varpUdtAnswer:Answer):LongInt;Stdcall;export 函数说明:此函数返回值一直为-1 pIntComPort- 请参照上面函数相同参数定义 pIntAddress - 表地址 pSngPules - 测试过程的理论脉冲数 例如:时钟晶振仪脉冲数为5000000 分频系数为100 设置圈数为60 此时的理论脉冲数为(时钟晶振脉冲数/分频系数) *设置圈数 即:(5000000/100)*609、 附录11) 控源动态库中用的结构体定义 标准表返回值Standard,定义如下:Type Standard = Record RealVA : Single; /A相电压(V) RealVB: Single; /B相电压(V) RealVC: Single; /C相电压(V) RealAA : Single; /A相电流(A) RealAB : Single; /B相电流(A) RealAC : Single; /C相电流(A) RealPFA: Single; /A相功率因数 RealPFB: Single; /B相功率因数 RealPFC: Single; /C相功率因数 RealWA : Single; /A相功率,标准表在有功电能输出状态时为有功率(W),无功时为无功功率(var) RealWB : Single; /B相功率 RealWC : Single; /C相功率 RealPF : Single; /平均功率因数 RealAngle : Single; /角度 RealFrequency : Single; /频率(Hz) RealPVA : Single; /总视在功率(VA) RealP : Single; /总视在有功功率(W) RealQ : Single; /总视在无功功率(var)End Type 误差返回值Answer,定义如下:Type Answer = Record StrAnswer:Single; /返回误差值。 StrTimes:Single; /返回误差值的当前次数。End Type 控源时间 DelayTime,定义如下:Type DelayTime = Record SteadyTime:LongInt; /升源稳定时间。 AdjustTime:LongInt; /升源稳定后调整电压、电流赋值所用时间。End Type 结构体 Pules,定义如下:Type Pules = Record pIntSourceVersion : LongInt; pIntConstFactor : LongInt; pIntPulesConst : LongInt; pIntRoundConst : LongInt;end;后续版本已经不使用该结构体,所以使用时传递结构体内参数值都赋值为0即可。附注:设置的谐波问题,我们公司Dsp信号源设置的时候,需要先进行谐波设置然后再升源。 设置谐波函数Function SetDSPHarmonic(pIntComPort: LongInt; pIntID:LongInt; WaveDegree1:single; Wave
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论