基于远程io和变频器的电机调速系统设计(编辑修改稿)内容摘要:

晶体管开关,可由主机进行控制。 主机可以利用模块的数字量输入来检测行程开关、安全开关或远程数字量信号。 本设计使用它输出开关量来控制报警器, 当程序计算值超出 设定报警限时,模块将输出低电平,触发报警。 其他硬件 系统选用输出标准电流信号的压力计作为测量变送器,且选用接受标准信号的电动阀作为执行器。 系统出报警器直接由 220V/AC 供电以外,其他模块和仪表均由输出 24V/DC开关电源供电。 系统硬件设计面板连接图和实物接线图如图 23和 24 所示。 G N D报 警 1 报 警 2P I D电 源 + 输 入 + 输 出 信 号 + 输 出 信 号 2 4 V / D C + 2 4 V / D C 4 0 5 0 4 0 1 9 + 4 0 2 4G N DD O 0I i n I i n + I o u t I o u t + 图 23 系统硬件设计面板连接图 重庆科技学院 计算机测控系统设计 —— 基于远程 I/O 和变频器的电机调速系统设计 5 图 24 压力系统硬件设计面板连接实物图 接线说明: 24V/DC 供电; +接电流 模式 0 通道 Iin+接传感器“信号 +”, Iin接 24V 电源“ ”,传感器“输入 +”接 24V 电源“ +”; 的 3 通道 Iout+输出接调节阀“输入 +”, Iout接调节阀“输入 ”; 数字量输出 0 通道“ DO0”接“报警器 2”,报警器 GND 接 24V电源“ ”; 3 软件设计 主程序设计 本本设计采用增量式不完全微分 PID 控制算法,其控制精度相对于纯微分PID 控制算法有明显优势。 不完全微分 PID 实际上是由一个不完全微分环节和一个 PI 环节组成,其微分作用是按照指数衰减缓慢 释放的。 其流程图如图 31 所示。 重庆科技学院 计算机测控系统设计 —— 基于远程 I/O 和变频器的电机调速系统设计 6 图 31 不完全微分 PID 控制算法流程图 不完全微分算法核心代码如下: En=L_adSP。 //反作用 Udn=Udn1+K1*(EnEn1)+K2*(EnUdn1)。 //微分环节的位置型算式 DeltaUn=(KP*TS/I)*Udn+KP*(UdnUdn1)。 //整个不完全微分 PID 的增量式算式 Un=Un1+DeltaUn。 //Un 为本周期 PID 控制器的输出 if(Un) Un=。 if(Un) Un=。 Un1=Un。 //偏差移动 En1=En。 Udn1=Udn。 计算 E(n) 计算 Kd Kd2 计算 Ud(n)变化 计算 Ud(n) 计算 U(n)变化 计算 E(n) 更新 E(n1)、 Ud(n1) 退出 重庆科技学院 计算机测控系统设计 —— 基于远程 I/O 和变频器的电机调速系统设计 7 控制系统软件流程图如图 32 所示。 图 32 系统软件流程图 数据采集和数据发送 本设计需要 微软环境所 提供的 ActiveX 的 MSComm 控件。 数据采集程序设计 4019 模块读指定通道输入值命令为:“ AAn( cr)”其中 AA 为 栈号, n为通道号。 4019 模块在 0 通道数据采集语句如下: float dav。 if(MSComm1PortOpen==false) MSComm1PortOpen=true。 AnsiString SendString=010。 SendString +=\xd。 MSComm1Output=OleVariant(AnsiString(SendString))。 Sleep(200)。 开始 数据采集 是否超限 PID 计算 4024 数据输出 4050 输出报警 4024 输出 退出 N Y 重庆科技学院 计算机测控系统设计 —— 基于远程 I/O 和变频器的电机调速系统设计 8 控制 数据输出程序设计 数据输出分为 4024 电流 量和 4050 数字量,分别表示不完全微分 PID 控制输出和报警信号输出。 其程序语句如下: 4024 模块送 D/A 数据的命令为:“ AACn( data)”,其中 AA 为栈号, C 为固定字符, n 为通道号, data 为待发送的数据。 4024 模块 3 通道数据输出语句如下: if(MSComm1PortOpen==false) MSComm1PortOpen=true。 AnsiString SendString1=02C3。 if(Un) { SendString1 +=+0。 SendString1 +=FloatToStrF(Un,0,4,4)。 } if(Un=) { SendString1 +=+。 SendString1 +=FloatToStrF(Un,0,5,5)。 } SendString1 +=\xd。 MSComm1Output=OleVariant(AnsiString(SendString1))。 MSComm1PortOpen=false。 Edit1Text=FloatToStrF(L_ad,0,5,5)。 Edit3Text=FloatToStrF(Un,0,5,5)。 } 报警 输出程序设计 4050 模块数字量输出的命令为:“ AABB(data)” 其中 AA 为栈号, BB 为输出格式, data 为待发送的数据。 当测量值大于设定值“ dan”或是“ PVSP”大于 时则输出报警信号。 报警器程序代码如下: /*********设置报警限 ********/ if(PressHL ||PressLL) { if(MSComm1PortOpen==false) 重庆科技学院 计算机测控系统设计 —— 基于远程 I/O 和变频器的电机调速系统设计 9 MSComm1PortOpen=true。 AnsiString SendString2=030001。 SendString2 +=\xd。 MSComm1Output=OleVariant(AnsiString(SendString2))。 MSComm1PortOpen=false。 } if( Press(LL+DB)amp。 amp。 Press(HLDB)) { if(MSComm1PortOpen==false) MSComm1PortOpen=true。 AnsiString SendString3=030000。 SendString3 +=\xd。 MSComm1Output=OleVariant(AnsiString(SendString3))。 MSComm1PortOpen=false。 } 4 调试过程及结果分析 调试过程 1)首先按照电气 CAD 的连线图连接好线路。 打开配置软件,设置好传输波特率,波特率设置为 9600Bps, 4024 模块的 3 通道和 4019+模块的 0 通道均。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。