工控网首页
>

应用设计

>

Windows 环境自动控制软件开发(四)

Windows 环境自动控制软件开发(四)

2005/8/2 15:55:00
>>>Windows 环境自动控制软件开发(三) 调节电位器说明 A/D相关电位器 W1:单极性零点调节 W2:单、双极性满度调节 W3:双极性零点调节 D/A相关电位器 W4:D/A输出通道一零点调节 W5:D/A输出通道一满度调节 W6:D/A输出通道二零点调节 W7:D/A输出通道二满度调节 W8:D/A输出通道三零点调节 W9:D/A输出通道三满度调节 W10:D/A输出通道四零点调节 W11:D/A输出通道四满度调节 A/D操作 A/D操作有三种方式:软件启动、定时启动和外触发启动。 相关寄存器 1) 控制/状态寄存器 参见表3-5,此寄存器为一个字节,当进行读操作时可以得到当前A/D转换和步进电机的状态;当进行写操作时可以控制A/D转换方式。
注意:当定时启动有效时,外触发启动无效。 2) AD通道选择/启动AD寄存器(基地址+0) 参见表3-6,此寄存器为一个字节,当进行写操作时选择通道;当进行读操作时启动A/D转换。
*此寄存器D4位选择单双端输入。 3)AD结果/分频系数寄存器(基地址+2) 参见表3-8、表3-9,当对此寄存器进行读操作时以字方式,低12位有效,返回A/D转换结果,同时清中断标志位,使下一次中断可以产生。当对此寄存器进行写操作时以字节方式,低5位有效,设定定时启动A/D转换时的分频系数。
由此寄存器返回的码值与实际电压值有如下对应关系: 0V~10V: 实际值=(码值/4095×10)V; -5V~+5V: 实际值=(码值/4095×10-5)V; -10V~+10V:实际值=(码值/4095×20-10)V;
BIT0为分频系数的低位,BIT4位分频系数的高位,因此分频系数范围是1~31。 D/A操作 相关寄存器 1) D/A通道选择寄存器 参见表3-9,此寄存器为一个字节,只能进行写操作以选择通道 表3-9 D/A通道选择寄存器
2) D/A输出寄存器 参见表3-10,此寄存器为一个字,只能进行写操作。码值与实际电压值关系请参考A/D结果寄存器部分。
其中BIT0为D/A输出的低位,BIT11为D/A输出的高位。因此D/A输出的码值范围为0~4095 单极性时码值与实际电压关系遵照下面公式: 实际值=码值÷4095х5(V) 双极性时码值与实际电压关系遵照下面公式: 实际值=码值÷4095х10 -5(V) 操作步骤 先选择输出通道,然后输出电压。注意输出电压操作为字操作。 上电状态 A/D选通的通道为0通道,D/A选通的通道为0通道,D/A4个通道输出为最小值,单极性为0V,双极性为-5V。24路开关量全部为输入。 跳线出厂设置 地址为100H,A/D输入方式为0~10V,D/A输出方式为0~5V,中断没有接。 4.接口定义 模拟量输入输出接口(J1)定义 参见表3-11
模入部分 跳线选择 JP2是单双极性选择跳线
各电位器功能说明 W1:单极性零点调节。 W2:单、双极性满度调节。 W3:双极性零点调节。 调整方法 凡改变模入工作方式,如果采样结果偏差大于20mV以上的,需要对模入部分进行调整。 ●单极性校准方法: 1. 选单极性输入方式0-5V,在第一通道上加入0V,调节W1,通过测试程序观看要上来的数据,观察第一通道的显示,使数据稳定在0到1之间即可。 2. 在第一通道上加入5V(4.9988V),调节W2,通过测试程序观看要上来的数据,使数据稳定在4094到4095之间即可。 ●双极性校准方法: 1. 选双极性输入方式±5V,在第一通道上加入-5V,调节W3,通过测试程序观看要上来的数据,观察第一通道的显示,使数据稳定在0到1之间即可。 2. 在第一通道上加入5V(4.9976V),调节W2,通过测试程序观看要上来的第一通道的数据,使数据稳定在4094到4095之间即可。 模出部分 跳线选择
各电位器功能说明 一般情况下不需要对模出部分调整,但在某些情况下有可能模出误差比较大,这时可进行零点调整和满度调整。 ① 零点调整:调整W4(D/A1),W6(D/A2),W8(D/A3),W10(D/A4)。 ② 满度调整:调整W5(D/A1),W7(D/A2),W9(D/A3),W11(D/A4)。 调整方法 以调整D/A1为例说明D/A的调整办法 单极性输出方式0-5V,用测试软件输出0,调整W4,通过电压表观察使输出达到0V。         第4章 实时控制程序
系统实时控制程序:  通用声明: Public h1 As Integer, h2 As Integer Private Declare Function aginp Lib "Apiguide.dll" (ByVal portid) Private Declare Function agoutp Lib "Apiguide.dll" (ByVal portid) Form1 Private Sub Command1_Click() ’进入Form2控制界面 Unload Me Form2.Show End Sub Form2 Private Sub Command1_Click() ’调用时钟程序 Timer1.Enabled = True Timer1.Interval = 3000 End Sub Private Sub Command2_Click() ’调用Form3水位显示界面 Unload Me Form3.Show End Sub Private Sub Command3_Click() ’结束 End End Sub Private Sub Timer1_Timer() Dim p1, p2, lb1, hb1, lb2, hb2, ad1, ad2, h1, h2, F, hb, lb As Integer Dim h1a, h2a, X, v1, v2 As Double bas% = 100H agoutp (bas + 1), 0 ’选择软件启动A/D转换方式 agoutp (bas + 0), 16 选择输入通道 aginp (bas + 0) 启动A/D sample1: p1 = aginp(bas + 1) 查询A/D转换状态 p1 = p1 And 1 If p1 <> 0 Then GoTo sample1 lb1 = aginp(bas + 2) 读入低位 hb1 = aginp(bas + 3) 读入高位 hb1 = hb1 And 15 屏蔽高四位 ad1 = hb1 * 256 + lb1 v1 = adl / 4095 * 10 电压值 h1a = v1 / 10 * 100 h1 = Int(h1a) 液位值 agoutp (bas + 1), 0 选择软件启动A/D转换方式 agoutp (bas + 0), 17 选择输入通道 aginp (bas + 0) 启动A/D sample2: p2 = aginp(bas + 1) 查询A/D转换状态 p2 = p2 And 1 If p2 <> 0 Then GoTo sample2 lb2 = aginp(bas + 2) 读入低位 hb2 = aginp(bas + 3) 读入高位 hb2 = hb2 And 15 屏蔽高四位 ad2 = hb2 * 256 + lb2 v2 = ad2 / 4095 * 10 电压值 h2a = v2 / 10 * 100 h2 = Int(h2a) 液位值 X =40+2*40 F = Int(-246 * h1a - 321 * h2a + 2 * X) 求阀门开度值 hb = Int(F / 256) 高位值 lb = ou - hb * 256 低位值 agoutp (bas + 4), 0 选择输出通道 agoutp (bas + 6), lb 输出低位值 agoutp (bas + 7), hb 输出高位值 End Sub Form3 Private Sub Command1_Click() ’返回Form2 Unload Me Form2.Show End Sub Private Sub Form_Load() ’实时显示水位值 Text1.Text = Form2.h1 Text2.Text = Form2.h2 End Sub 结 论 双容水槽系统为典型的大惯性系统。通过此次设计使我学会了分析系统、建立数学模型、计算机仿真和硬件选型等知识,掌握了设计方法,理论联系实际。并加强了对现代控制理论和过程控制理论知识的掌握和提高。 系统仿真使我们更直观的看到了系统的运行状况和结果。在进行系统仿真时,由于不断的调整参数和系统控制方法,使震荡次数较多,超调较大的系统变为能快速趋于稳定,满足设计要求的系统。锻炼了我发现问题、提出问题、解决问题的能力。 通过对硬件的选型使系统理论落实到实践,对系统有了更深的认识。但由于条件限制并没有进行硬件实物的连线、调试等,只是根据产品说明进行设计,缺少实践操作环节。 通过此次系统设计还使自己在资料查阅、编写程序、自学能力等方面得到了进一步锻炼,
投诉建议

提交

查看更多评论
其他资讯

查看更多

利用滤波器抑制开关电源的电磁干扰

小型电磁兼容敏感度自动测试系统的设计

PLC和MDS无线数电台的SCADA系统在水厂中应用

Windows 环境自动控制软件开发(三)

Windows 环境自动控制软件开发(二)