版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE54实验一PC机与智能仪表的串口通信调试一、实验目的1、掌握PC机与智能仪表的串口通信连接方法;2、掌握“串口调试助手”程序的使用方法;3、了解“计算器”程序进行十进制与十六进制数据转换的方法。二、预习要求1、详细阅读附录1:XMT-3000A智能仪表使用;2、详细阅读附录2:XMT-3000A智能仪表通讯接口协议;3、详细阅读附录4:RS-232串口通信标准;三、实验软、硬件序号名称数量备注1PC计算机12XMT-3000A智能仪表1参见附录1、23串口通信线14热电阻传感器Cu5015指示灯26串口调试助手V2.217Calc.exe(计算器)1图1:硬件连接线路图四、实验线路图1:硬件连接线路图五、实验内容与步骤1、系统连接请观察所用计算机主机箱后RS232C串口的数量、位置和几何特征。查看计算机与智能仪表的串口连接线及其端口。在计算机与智能仪表通电前,按图1)所示将传感器Cu50、指示灯与XMT-3000A智能仪表连接;通过串口线将计算机与智能仪表连接。线路检查无误后接通电源。特别注意:连接仪表与计算机串口线时,仪表与计算机严禁通电,否则极易烧毁串口。2、XMT-3000A智能仪表的参数设置XMT-3000A智能仪表在使用前应对其输入/输出参数进行正确设置,设置好的仪表才能投入正常使用。请按下表设置仪表的主要参数:参数参数含义设置值HiAL上限绝对值报警值30LoAL下限绝对值报警值20CtrL控制方式3Sn输入规格传感器为:Cu50,则Sn=diP小数点位置要求显示一位小数,则diP=ALP仪表功能定义要求下限报警由报警1(ALM1)输出,上限报警由报警2(ALM2)输出,报警时在下显示器显示报警符号。则ALP=Addr通讯地址1bAud通讯波特率4800根据仪表的上述参数设置,如果PC机需要读取仪表当前测量温度值、dIP等参数,则PC机应向仪表发送读指令:__________________________________。3、温度测量与控制1)正确设置仪表参数后,仪表PV窗显示当前温度测量值;2)给传感器升温,当温度测量值大于上限报警值30℃时,上限指示灯L2亮,仪表SV窗显示上限报警信息;3)给传感器降温,当温度测量值小于上限报警值30℃,大于下限报警值20℃时,上限指示灯L2和下限指示灯L1均灭;4)给传感器继续降温,当温度测量值小于下限报警值20℃时,下限指示灯L1亮,仪表SV窗下限报警信息。4、计算机串口设置图2:计算机通讯端口(COM1)设置进入WINDOWS“我的电脑”系统属性,在设备管理器列表中有端口COM和LPT设备信息,选中通讯端口COM1,查看其属性,在COM1端口属性的端口设置选项中,将其波特率(即每秒位数)设为4800,停止位设为2图2:计算机通讯端口(COM1)设置5、串口调试程序的使用XMT-3000A智能仪表使用异步串行通讯接口,采用RS232通讯方式,其数据格式为:________________________________________________________。打开“串口调试助手”程序。首先设置串口号、波特率、校验位、数据位、停止位等参数,选择十六进制显示和十六进制发送方式,打开串口,见图3)。在发送指令文本框输入读指令:8080520C,点击“手动发送”按钮,则PC机向仪表发送一条指令,仪表返回一串数据,如:3D01E70364000100,该串数据在返回信息框内显示。根据仪表返回数据,可知仪表的当前温度测量值为:____________(十六进制);____________℃(十进制)。图3:串口调试助手发送指令返回信息6、使用“计算器图3:串口调试助手发送指令返回信息打开WINDOWS附件中“计算器”程序,在“查看”菜单下选择“科学型”。选择“十六进制”,输入仪表当前温度测量值:013D(十六进制,0在最前面不显示),见图4)。图4:在“计算器”中输入十六进制数点击“十进制”选项,则十六进制数“013D”转换为十进制数图4:在“计算器”中输入十六进制数请问:仪表的当前温度测量值为:____________℃(十进制),为什么?图5:十六进制数转十进制数7、实验扩展图5:十六进制数转十进制数1)将智能仪表的地址设为12,如果PC机需要读取该仪表的当前测量温度值及上限报警值,则PC机应向仪表发送读指令:______________________________。2)如果主机需要将地址号为32的仪表的上限报警温度设定为35℃,则主机应向仪表发送写指令:______________________________。3)如果主机需要将地址号为62的仪表的下限报警温度设定为15℃,则主机应向仪表发送写指令:_____________________________。请用“串口调试助手”程序和智能仪表进行验证。六、实验思考题1、串口调试程序中,“手动发送”和“连续发送”有何区别?2、采用RS-232串口通信时,其最长传输距离一般是多少?为什么?3、使用RS-232串口通信最少需要几条信号线?为什么?实验二利用VB实现PC机与智能仪表串口通信一、实验目的掌握PC机与智能仪表串口通信的VB程序设计方法。二、预习要求1、详细阅读附录1:XMT-3000A智能仪表使用;2、详细阅读附录2:XMT-3000A智能仪表通讯接口协议;3、详细阅读附录6:VisualBasic6.0使用指南;4、详细阅读附录7:MSComm控件使用详解。三、实验软、硬件序号名称数量备注1PC计算机12XMT-3000A智能仪表1参见附录1、23串口通信线14热电阻传感器Cu5015指示灯26VisualBasic6.01参见附录6、7图1:硬件连接线路图四、实验线路图1:硬件连接线路图五、实验内容与步骤1、系统连接在计算机与智能仪表通电前,按图1)所示将热电阻传感器Cu50、指示灯与XMT-3000A智能仪表连接;通过串口线将计算机与智能仪表连接。线路检查无误后接通电源。特别注意:连接仪表与计算机串口线时,仪表与计算机严禁通电,否则极易烧毁串口。2、XMT-3000A智能仪表的参数设置XMT-3000A智能仪表在使用前应对其输入/输出参数进行正确设置,设置好的仪表才能投入正常使用。请按下表设置仪表的主要参数:参数参数含义设置值HiAL上限绝对值报警值28LoAL下限绝对值报警值18Sn输入规格20ALP仪表功能定义10Addr通讯地址5bAud通讯波特率48003、建立新工程项目VisualBasic使用“工程”来管理每一个应用程序要使用的所有文件,每建立一个新程序,就要新建一个工程。运行VisualBasic6.0程序,出现“新建工程”对话框,见图2)。图2:新建工程对话框图2:新建工程对话框选择“标准EXE”,执行“打开”命令,进入VB工程集成开发环境,见图3)。图3:图3:VB工程集成开发环境保存工程:执行菜单“文件\保存工程”命令,出现“文件另存为…”对话框,请将新建立的工程窗体文件(.frm)、工程文件(.vbp)等都存在同一个单独的文件夹里(自己建立)。4、程序界面设计运行VB6.0,创建标准的工程项目文件,设计程序窗体。图4:添加MSComm串口通信控件默认的控件面板中没有MSComm串口通信控件,因此首先要把它加入到控件面板中。选择“工程”菜单下的“部件…”选项,在弹出的对话框中,在“控件”选项卡属性中选中“MicrosoftCommControl6.0”复选框,见图4),单击“确定”按钮后,MSComm控件就添加到控件面板上了,这时在控件面板中图4:添加MSComm串口通信控件将MSComm控件加到程序窗体上,利用该控件PC机就可以通过VB实现与智能仪表的串口通信了。每个MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSComm控件。图5:程序窗体界面为了实现连续的自动发送,将控件面板中的Timer控件(形似“钟表”)加到程序窗体上。图5:程序窗体界面设计的界面见图5)。5、窗体、控件对象主要属性设置控件类型名称主要属性功能FormfrmMainBorderStyle=3运行时窗体固定大小Caption=PC机与智能仪表串口通信程序V1.0窗体标题栏显示程序名称LabelLabel1Caption=测量温度值:标签TextBoxTdataText为空测量温度值显示框Alignment=2-Center显示字符置中FrameFrame1Caption=显示方式选择数值显示方式OptionButtondis10Caption=十进制测量值以十进制显示Value=True初始化可用OptionButtondis16Caption=十六进制测量值以十六进制显示FrameFrame2Caption=报警指示上、下限指示LabelLabel2Caption=上限灯:标签LabelLabel3Caption=下限灯:标签Shapealarm1FillColor=&H0080FF00&(绿)上限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形Shapealarm2FillColor=&H0080FF00&(绿)下限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形FrameFrame3Caption=串口状态选择打开/关闭串口OptionButtonopencomCaption=打开串口打开串口OptionButtonclosecomCaption=关闭串口关闭串口Value=True初始化可用CommandButtonCmdmanCaption=手动发送手动间断读取数据CommandButtonCmdautoCaption=自动发送自动连续读取数据CommandButtonCmdquitCaption=关闭关闭程序TimerTimer1Enabled=False时钟初始不可用Interval=500设置发送周期(毫秒)MSCommMSComm1CommPort=1设置通信端口号为COM1InputMode=1以二进制格式读取数据Rthreshold=1设置并返回的要接收的字符数Sthreshold=1设置并返回传输缓冲区中允许的最小字符数Settings=4800,n,8,2设置串口参数6、程序代码设计'定义变量DimdatawayAsInteger'数值显示方式DimdatatempAsSingle'温度采样值'程序初始化PrivateSubForm_Load()IfMSComm1.PortOpenThenMSComm1.PortOpen=Falsealarm1.FillColor=QBColor(10)alarm2.FillColor=QBColor(10)dataway=1EndSub'十进制显示PrivateSubdis10_Click()dataway=1CallorderEndSub'十六进制显示PrivateSubdis16_Click()dataway=2CallorderEndSub'打开串口PrivateSubopencom_Click()IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseMSComm1.PortOpen=TrueEndSub'关闭串口PrivateSubclosecom_Click()IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseIfTimer1.Enabled=TrueThenTimer1.Enabled=FalseEndSub'手动间断采集PrivateSubCmdman_Click()IfMSComm1.PortOpen=FalseThenp%=MsgBox("串口未打开!",16,"提示")ExitSubEndIfIfTimer1.Enabled=TrueThenTimer1.Enabled=FalseCallorderEndSub'自动连续采集PrivateSubCmdauto_Click()IfMSComm1.PortOpen=FalseThenp%=MsgBox("串口未打开!",16,"提示")ExitSubEndIfIfTimer1.Enabled=FalseThenTimer1.Enabled=TrueCallorderEndSub'周期发出请求指令PrivateSubTimer1_Timer()CallorderEndsub'向仪表发送读数据命令串Suborder()IfMSComm1.PortOpen=TrueThenMSComm1.Output=Chr(&H8585)+Chr(&H52)+Chr(&H0C)EndIfEndSub'每发送一次指令,触发下面事件,返回数据串PrivateSubMSComm1_OnComm()DimInbyte()AsByteDimbufferAsStringDimdatatemp2aAsStringDimdatatemp2bAsStringDimdatatemp2AsString'读取仪表返回数据串SelectCaseMSComm1.CommEventCasecomEvReceiveDimi%buffer=""'双引号之间没有空格Inbyte=MSComm1.InputFori=LBound(Inbyte)ToUBound(Inbyte)buffer=buffer+Hex(Inbyte(i))+Chr(32)NextiCasecomEvSendEndSelect'获取十进制测量数据IfLen(RTrim(Mid(buffer,1,2)))=1Thendatatemp=Val("&H"&Mid(buffer,3,2)&Str("0")&Mid(buffer,1,2))*0.1Elsedatatemp=Val("&H"&Mid(buffer,3,2)&Mid(buffer,1,2))*0.1EndIf'获取十六进制测量数据IfLen(LTrim(RTrim(Mid(buffer,1,2))))=1Thendatatemp2a=Str("0")<rim(RTrim(Mid(buffer,1,2)))Elsedatatemp2a=Mid(buffer,1,2)EndIfIfLen(LTrim(RTrim(Mid(buffer,3,2))))=1Thendatatemp2b=Str("0")<rim(RTrim(Mid(buffer,3,2)))Elsedatatemp2b=Mid(buffer,3,2)EndIfdatatemp2=datatemp2a&""&datatemp2b'显示测量温度值Ifdatatemp<>0ThenIfdataway=1ThenTdata.Text=Format$(datatemp,"0.0")Ifdataway=2ThenTdata.Text=datatemp2CallalarmEndifEndSub'上、下限报警指示Subalarm()Ifdatatemp>=28Thenalarm1.FillColor=QBColor(12)EndIfIfdatatemp<28Anddatatemp>18Thenalarm1.FillColor=QBColor(10)alarm2.FillColor=QBColor(10)EndIfIfdatatemp<=18Thenalarm2.FillColor=QBColor(12)EndIfEndSub'关闭程序PrivateSubCmdquit_Click()UnloadfrmMainEndSub(特别提示:参考程序中若有不妥或错误之处,请调试、修改)7、运行程序图6:程序运行界面程序设计、调试完毕,执行菜单“运行/启动”命令或单击工具栏快捷按钮“启动”,运行程序,见图6)。图6:程序运行界面1)首先打开串口;2)选择测量值显示方式:十进制/十六进制;3)选择命令发送方式:手动间隔发送/自动连续发送;4)给传感器降温或升温,程序显示测量温度值;当测量温度值大于或小于程序/仪表设定上限、下限温度值时,程序画面中上限灯或下限灯改变颜色,相应地与仪表相连的上、下限指示灯亮。5)运行完毕,单击“关闭”按钮,关闭程序。8、编译程序执行菜单“文件/生成工程1.exe”命令,出现“生成工程”对话框,输入文件名,点击“确定”按钮,则建立的工程编译成后缀名为“.exe”的可执行文件,该文件可脱离VisualBasic6.0开发环境单独运行。9、实验扩展1)在程序运行中设置温度报警上、下限等参数值(设计参数设置窗体);2)在程序运行中自动统计测量点数、最大值、最小值、平均值等数据;3)绘制测量温度实时变化曲线(设计曲线绘制窗体);4)将读取的数据保存在数据文件(或数据库)中,并能打开、调用;六、实验思考题1、连续读取数据时,发送周期设为100毫秒(即Timer1控件的Interval=100)是否可以?为什么?2、MSComm1控件的Settings属性值保持默认值(9600,n,8,1)不变是否可以?实验三利用Kingview实现PC机与智能仪表串口通信一、实验目的掌握PC机与智能仪表串口通信的组态监控软件设计方法。二、预习要求1、详细阅读附录1:XMT-3000A智能仪表使用;2、详细阅读附录4:RS-232串口通信标准;3、详细阅读附录10:Kingview6.0使用指南。三、实验软、硬件序号名称数量备注1PC计算机12XMT-3000A智能仪表1参见附录13串口通信线14热电阻传感器Cu5015指示灯26Kingview6.01参见附录10图1:硬件连接线路图四、实验线路图1:硬件连接线路图五、实验内容与步骤1、系统连接在计算机与智能仪表通电前,按图1)所示将热电阻传感器Cu50、指示灯与XMT-3000A智能仪表连接;通过串口线将计算机与智能仪表连接。线路检查无误后接通电源。特别注意:连接仪表与计算机串口线时,仪表与计算机严禁通电,否则极易烧毁串口。2、XMT-3000A智能仪表的参数设置XMT-3000A智能仪表在使用前应对其输入/输出参数进行正确设置,设置好的仪表才能投入正常使用。请按下表设置仪表的主要参数:参数参数含义设置值HiAL上限绝对值报警值30LoAL下限绝对值报警值25Sn输入规格20ALP仪表功能定义10Addr通讯地址1bAud通讯波特率48003、建立新工程项目图2:组态王工程管理器运行组态王6.0程序,出现组态王工程管理器画面,见图2)。图2:组态王工程管理器在组态王中,您开发的每一个应用系统称为一个项目,每个项目必须在一个独立的目录中,不同的项目不能共用一个目录。项目目录也称为工程路径。在每个工程路径下,组态王为此项目生成了一些重要的数据文件,这些数据文件一般是不允许修改的。为建立一个新项目,请执行以下操作:在工程管理器中选择菜单“文件\新建工程”或单击快捷工具栏“新建”命令,出现“新建工程向导之一欢迎使用本向导”对话框。单击“下一步”出现“新建工程向导之二选择工程所在路径”对话框,见图3)。选择或指定工程所在路径。如果您需要更改工程路径,请单击“浏览”按钮。图3:选择新建工程文件夹如果路径或文件夹不存在,请创建。图3:选择新建工程文件夹图4:输入工程名称和描述单击“下一步”出现“新建工程向导之三工程名称和描述”对话框,见图4)。图4:输入工程名称和描述在对话框中输入工程名称:XMT3000A(必需);在工程描述中输入:组态王与智能仪表串口通信(可选)。图5:组态王新建的工程单击“完成”,新项目建立,并确认将新建的工程设为组态王当前工程,此时组态王工程管理器中出现新建的工程,见图5)。图5:组态王新建的工程双击新建的工程名,选择“忽略”,进入工程浏览器对话框,见图6)。图6:组态王工程浏览器图6:组态王工程浏览器注:在实际工业监控中,每套正版组态王软件均配置了“加密狗”,系统运行时安装在计算机并口上,则组态王运行时,没有时间限制。4、制作图形画面在工程浏览器左侧树形菜单中选择“文件/画面”,在右侧视图中双击“新建”,出现画面属性对话框,输入画面名称、设置画面位置、大小等,见图7),然后单击“确定”按钮,进入组态王开发系统。图7:画面属性对话框图7:画面属性对话框图8:图库管理器为图形画面添加1个仪表对象:在开发系统中执行菜单“图库/打开图库”命令,进入图库管理器,选择“仪表”库中的一个图形对象,见图8),双击选择的仪表图形,在开发系统画面空白处单击并拖动鼠标,则画面中出现选择的仪表图形,可以通过鼠标拖动图形边上的箭头来放大或缩小图形;图8:图库管理器同样,通过图库管理器再为图形画面添加2个指示灯对象;通过工具箱添加6个文本对象:“设定上限值”、“上限指示灯”、“设定下限值”、“下限指示灯”;上、下限显示文本框“000”、“000”;图9:图形画面在工具箱中选择“按钮”对象添加到画面中,然后选中该按钮,单击鼠标右键,选择“字符串替换”,将按钮“文本”改为“关闭”,设计的图形画面见图9)。图9:图形画面注意:建立仪表、指示灯、文本等对象和变量的动画连接后,才可对这些对象进行各种属性设置。5、定义串口设备在组态王工程浏览器的左侧选择“设备/COM1”,在右侧双击“新建”,运行“设备配置向导”。图10:选择串口设备选择:智能仪表南京朝阳XMT3000串行,见图10)。图10:选择串口设备单击“下一步”,给要安装的设备指定唯一的逻辑名称,如:智能仪表(若定义多个串口设备,该名称不能重复);单击“下一步”,选择串口号,如:COM1(须与PC机上使用的串口号一致);单击“下一步”,为要安装的智能仪表指定地址,如:1(必须与智能仪表内部设定的Addr参数一致,若定义多个串口设备,该值不能重复);单击“下一步”,不改变通信参数;单击“下一步”,显示所要安装的设备信息,请检查各项设置是否正确,确认无误后,单击“完成”。设备定义完成后,您可以在工程浏览器“设备/COM1”的右侧看到新建的串口设备“智能仪表”。双击“设备/COM1”,弹出串口设置对话框,设置串口COM1的通讯参数:波特率:4800;奇偶校验:无校验;停止位:2,通信方式:RS232。6、定义变量在工程浏览器的左侧树形菜单中选择“数据库/数据词典”,在右侧双击“新建”,弹出“定义变量”对话框。图11:定义“测量值”变量1)定义变量“测量值”:变量类型为I/O实数,最小值0,最大值1000,最小原始值0,最大原始值10000,连接设备:智能仪表,寄存器PV,数据类型FLOAT,读写属性:图11:定义“测量值”变量2)定义变量“上限报警值”:变量类型为I/O实数,初始值为30,最小值0,最大值1000,最小原始值0,最大原始值1000,连接设备:智能仪表,寄存器HIAL,数据类型FLOAT,读写属性:读写,采集频率:500,见图12)。图12:定义“上限报警值”变量3)定义变量“下限报警值”:初始值为25,寄存器为LOAL。(其它与变量图12:定义“上限报警值”变量图13:定义“上限灯”变量4)定义变量“上限灯”:变量类型为:图13:定义“上限灯”变量5)定义变量“下限灯”:变量类型为:内存离散,初始值为:关7、建立动画连接进入开发系统,双击画面中图形对象,将定义好的变量与相应对象连接起来。1)建立仪表对象的动画连接图14:建立仪表对象动画连接双击画面中仪表对象,弹出“仪表向导”对话框,单击变量名文本框右边的?号,选择已定义好的变量“测量值”,设置小数位数:1,见图14)。图14:建立仪表对象动画连接2)建立上、下限显示文本对象的动画连接图15:建立文本对象输出动画连接双击画面中上限值显示文本对象“000”,出现动画连接对话框,将“模拟值输出”属性与变量“上限报警值”连接,见图15);再将“模拟值输入”属性与变量“上限报警值”连接,见图16)。图15:建立文本对象输出动画连接图16:建立文本对象输入动画连接双击画面中下限值显示文本对象“000”,出现动画连接对话框,将“模拟值输出”属性与变量“下限报警值”连接;再将“模拟值输入”属性与变量“下限报警值”连接。图16:建立文本对象输入动画连接3)建立指示灯对象的动画连接图17:建立指示灯对象动画连接双击画面中上限指示灯对象,出现指示灯向导对话框,将上限指示灯对象与变量“上限灯”连接,见图17)。图17:建立指示灯对象动画连接双击画面中下限指示灯对象,出现指示灯向导对话框,将下限指示灯对象与变量“下限灯”连接4)建立按钮对象的动画连接双击按钮对象“关闭”,出现动画连接对话框,选择命令语言连接功能,单击“弹起时”按钮,见图18),在“命令语言”编辑栏中输入以下命令:exit(0);图18:建立按钮对象动画连接8、编写命令语言图18:建立按钮对象动画连接图19:编写命令语言进入工程浏览器,在左侧树形菜单中选择“命令语言”,双击““应用程序命令语言”,弹出“应用程序命令语言”对话框,将程序执行周期改为500毫秒,在“运行时”编辑栏中输入下列语句,见图19)。图19:编写命令语言注意:所有变量名均可通过左下角“变量[.域]”按钮来选择;输入程序时,各种符号如括号、分号等应在英文输入法状态下输入。9、调试与运行存储:设计完成后,在开发系统“文件”菜单中执行“全部存”命令将设计的画面和程序全部存储;注意:在开发系统中,对画面所做的任何改变,必须“全部存”,所做的改变才有效!图20:主画面配置配置主画面:在工程浏览器中,点击快捷工具栏上“运行”配置命令按钮,在出现的“运行系统设置”对话框中,进入主画面配置功能,选中制作的图形画面名称,单击“确定”按钮即将其配置成主画面,见图20)。图20:主画面配置图21:运行画面运行:在工程浏览器中,点击快捷工具栏上“VIEW”按钮或在开发系统中执行“文件/切换到view”命令,启动运行系统,见图21)。图21:运行画面1)给传感器降温或升温,实际仪表和画面中仪表显示测量温度值的变化情况;2)当测量温度值大于设定的上限或小于设定的下限温度值时,画面中上限指示灯或下限指示灯改变颜色,同时与仪表相连的上、下限指示灯亮;3)点击画面中上限/下限值显示文本,修改上限/下限值,则程序和仪表的上限绝对值报警值HiAL和下限绝对值报警值LoAL发生改变;4)修改仪表的上限绝对值报警值HiAL和下限绝对值报警值LoAL,则程序的上限/下限值发生改变。5)运行完毕,单击“关闭”按钮,关闭运行系统。10、实验扩展1)当测量温度值大于设定的上限或小于设定的下限温度值时,画面中上限指示灯或下限指示灯闪烁;2)当测量温度超过设定的上限值时,弹出一报警信息画面;3)在画面中添加“实时趋势曲线”对象,绘制温度实时变化曲线。六、实验思考题PC机与仪表连接的串口换成COM2,仪表的Addr参数设为2,那么PC机与仪表如何实现通信?实验四基于PC机与智能仪表的DCS设计一、实验目的1、掌握计算机与多个智能仪表组成集散型测控系统(DCS)的连接方法;2、掌握计算机与多个智能仪表串行通信的VB程序设计方法;3、掌握计算机与多个智能仪表串行通信的组态软件设计方法。二、预习要求1、查阅集散测控系统(DCS)的技术资料;2、详细阅读附录3:CHYDCS简介;3、详细阅读附录5:RS-232/RS-485转换器。三、实验软、硬件序号名称数量备注1PC计算机12XMT-3000A智能仪表2参见附录1、23RS-232/RS-485转换器3参见附录54热电阻传感器Cu5025指示灯46串口调试助手V2.21参见实验一7VisualBasic6.01参见附录6、78Kingview6.01参见附录10图1:PC图1:PC机与多个RS-232仪表连接示意图…PC机1号RS-232仪表上位机下位机COM12号RS-232仪表n号RS-232仪表图2:PC图2:PC机与多个RS-485仪表连接示意图PC机1号RS-485仪表上位机下位机COM12号RS-485仪表n号RS-485仪表…(一)系统连接与测试1、系统连接在计算机与智能仪表通电前,按图1)2)所示将2台XMT-3000A智能仪表与计算机通过RS-232/RS-485转换器连接成集散型测控系统。特别注意:连接仪表与计算机串口线时,仪表与计算机严禁通电,否则极易烧毁串口。2、XMT-3000A智能仪表的参数设置参数参数含义1号仪表设置值2号仪表设置值Sn输入规格2020diP小数点位置11ALP仪表功能定义1010Addr通讯地址12bAud通讯波特率48004800尤其注意DCS系统中的智能仪表绝对不允许有相同地址(Addr参数),否则该地址的所有仪表通讯失败。3、串口测试运行“串口调试助手”程序,首先设置串口号、波特率、校验位、数据位、停止位等参数,选择十六进制显示和十六进制发送方式,打开串口。在发送指令文本框先输入读指令:8181520C,点击“手动发送”按钮,1号表返回数据串;再输入读指令:8282520C,点击“手动发送”按钮,2号表返回数据串。可用“计算器”程序分别计算两个表的测量温度值。(二)VB程序设计1、程序界面设计运行VB6.0,创建标准的工程项目文件,设计程序窗体,界面见图3)。图3:程序窗体界面图3:程序窗体界面2、窗体、控件对象主要属性设置控件类型名称主要属性功能FormFrmMainBorderStyle=3运行时窗体固定大小Caption=PC机与多个智能仪表通信程序V1.0窗体标题栏显示程序名称FrameFrame1Caption=1号表显示1号表信息LabelLabel1Caption=1号表测量温度值:标签TextBoxTdata1Text为空1号表测量温度值显示框Alignment=2-Center显示字符置中LabelLabel2Caption=上限指示灯:标签Shapealarm1FillColor=&H0080FF00&(绿)上限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形FrameFrame2Caption=2号表显示2号表信息LabelLabel3Caption=2号表测量温度值:标签TextBoxTdata2Text为空2号表测量温度值显示框Alignment=2-Center显示字符置中LabelLabel4Caption=上限指示灯:标签ShapeAlarm2FillColor=&H0080FF00&(绿)下限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形FrameFrame3Caption=显示方式选择十/十六进制OptionButtondis10Caption=十进制测量值以十进制显示Value=True初始化可用OptionButtondis16Caption=十六进制测量值以十六进制显示FrameFrame4Caption=串口状态选择打开/关闭串口OptionButtonOpenComCaption=打开串口打开串口OptionButtonCloseComCaption=关闭串口关闭串口Value=True初始化可用CommandButtonCmdquitCaption=关闭关闭程序TimerTimer1Enabled=False时钟初始不可用Interval=500设置发送周期(毫秒)TimerTimer2Enabled=False时钟初始不可用Interval=500设置发送周期(毫秒)MSCommMSComm1CommPort=1设置通信端口号为COM1InputMode=1以二进制格式读取数据Rthreshold=1设置并返回的要接收的字符数Sthreshold=1设置并返回传输缓冲区中允许的最小字符数Settings=4800,n,8,2设置波特率、奇偶校验、数据位、停止位参数3、程序代码设计'程序初始化PrivateSubForm_Load()IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseEndSub'打开串口PrivateSubopencom_Click()IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseMSComm1.PortOpen=TrueIfTimer1.Enabled=FalseThenTimer1.Enabled=TrueEndSub'关闭串口PrivateSubclosecom_Click()IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseIfTimer1.Enabled=TrueThenTimer1.Enabled=FalseIfTimer2.Enabled=TrueThenTimer1.Enabled=FalseEndSub'自动连续采集'向仪表发送读数据命令串PrivateSuborder()IfMSComm1.PortOpen=FalseThenExitSubEndIfIfTimer1.Enabled=TrueThenMSComm1.Output=Chr(&H8181)+Chr(&H52)+Chr(&HC)EndIfIfTimer2.Enabled=TrueThenMSComm1.Output=Chr(&H8282)+Chr(&H52)+Chr(&HC)EndIfEndSub'周期发出请求指令PrivateSubTimer1_Timer()Timer1.Enabled=FalseTimer2.Enabled=TrueCallorderEndSub'周期发出请求指令PrivateSubTimer2_Timer()Timer2.Enabled=FalseTimer1.Enabled=TrueCallorderEndSub'每发送一次指令,触发下面事件,返回数据串PrivateSubMSComm1_OnComm()DimInbyte()AsByteDimdatatempAsSingleDimbufferAsString'读取仪表返回数据串SelectCaseMSComm1.CommEventCasecomEvReceiveDimi%buffer=""Inbyte=MSComm1.InputFori=LBound(Inbyte)ToUBound(Inbyte)buffer=buffer+Hex(Inbyte(i))+Chr(32)NextiCasecomEvSendEndSelect'获取十进制测量数据IfLen(RTrim(Mid(buffer,1,2)))=1Thendatatemp=Val("&H"&Mid(buffer,3,2)&Str("0")&Mid(buffer,1,2))*0.1Elsedatatemp=Val("&H"&Mid(buffer,3,2)&Mid(buffer,1,2))*0.1EndIf'显示测量温度值If(datatemp<>0)ThenIfTimer1.Enabled=TrueThenTdata1.Text=Format$(datatemp,"0.0")EndIfIfTimer2.Enabled=TrueThenTdata2.Text=Format$(datatemp,"0.0")EndIfEndIfEndSub'关闭程序PrivateSubCmdquit_Click()UnloadfrmMainEndSub4、运行程序程序设计、调试完毕,运行程序,选择数值显示方式,“打开串口”,程序中显示两个仪表的测量温度值,见图4)。图4:程序运行界面图4:程序运行界面5、实验扩展1)设计1号表、2号表的上限报警程序,即当测量温度超过每个表的设定上限温度时,每个表的上限指示灯颜色变成红色;2)设计显示方式程序:以十进制和十六进制显示测量温度值。(三)Kingview程序设计1、建立新工程项目工程名称:DCS;工程描述:利用Kingview和智能仪表实现DCS。2、制作图形画面通过工具箱在图形画面添加12个文本对象,1个按钮对象;通过图库为图形画面添加2个指示灯对象,见图5)。图5:图形画面图5:图形画面3、定义串口设备分别定义2个串口设备:选择:设备/COM1新建智能仪表南京朝阳XMT3000串行。逻辑名称:智能仪表1;串口号:COM1;仪表地址:1逻辑名称:智能仪表2;串口号:COM1;仪表地址:2注意:选择的串口号须与PC机上使用的串口号一致;仪表地址须与连网的两个智能仪表设定的Addr参数一致。双击“设备/COM1”,弹出串口设置对话框,设置串口COM1的通讯参数:波特率:4800;奇偶校验:无校验;停止位:2,通信方式:RS232。4、定义变量在工程浏览器的左侧选择“数据库/数据词典”,在右侧双击“新建”,弹出“定义变量”对话框,分别定义下面6个变量。1)定义变量“测量值1”:变量类型为I/O实数,最小值0,最大值1000,最小原始值0,最大原始值10000,连接设备:智能仪表1,寄存器PV,数据类型FLOAT,读写属性:只读,采集频率:500;2)定义变量“测量值2”:变量类型为I/O实数,最小值0,最大值1000,最小原始值0,最大原始值10000,连接设备:智能仪表2,寄存器PV,数据类型FLOAT,读写属性:只读,采集频率:500;3)定义变量“上限报警值1”:变量类型为I/O实数,初始值为30,最小值0,最大值1000,最小原始值0,最大原始值1000,连接设备:智能仪表1,寄存器HIAL,数据类型FLOAT,读写属性:读写;4)定义变量“上限报警值2”:变量类型为I/O实数,初始值为30,最小值0,最大值1000,最小原始值0,最大原始值1000,连接设备:智能仪表2,寄存器HIAL,数据类型FLOAT,读写属性:读写;5)定义变量“上限灯1”:变量类型为:内存离散,初始值为:关;6)定义变量“上限灯2”:变量类型为:内存离散,初始值为:关;5、建立动画连接1)将1号表测量温度值显示文本“000”的“模拟值输出”属性与变量“测量值1”连接,设置1位小数;2)将1号表设定上限值显示文本“000”的“模拟值输出”属性与变量“上限报警值1”连接;再将“模拟值输入”属性与变量“上限报警值1”连接;3)将1号表上限指示灯对象与变量“上限灯1”连接;4)将2号表测量温度值显示文本“000”的“模拟值输出”属性与变量“测量值2”连接,设置1位小数;5)将2号表设定上限值显示文本“000”的“模拟值输出”属性与变量“上限报警值2”连接;再将“模拟值输入”属性与变量“上限报警值2”连接;6)将2号表上限指示灯对象与变量“上限灯2”连接;7)建立按钮对象的动画连接:按钮“弹起时”执行命令:exit(0)。6、编写命令语言在“命令语言/应用程序命令语言”运行时编辑栏中输入下面语句:7、调试与运行将设计的画面和程序全部存储并配置主画面,启动运行系统。程序中显示两个仪表的测量温度值;见图6)图6:运行画面当测量温度超过每个表的设定上限温度时,每个表的上限指示灯颜色改变;点击画面中各仪表上限值显示文本数值,可修改各仪表上限值。图6:运行画面六、实验思考题1、RS-485比RS-232的特性好,PC机与串口设备的通讯是否都改为RS-485呢?2、使用RS-485通信最少需要几条信号线?为什么?3、该DCS系统中智能仪表与计算机的的最长通信距离可以是多少?为什么?4、如何保证上位PC机与下位机(智能仪表)长距离数据通信的可靠性?5、将1号仪表和2号仪表的Addr值都设为1是否可以,为什么?实验五基于VB-ActiveDAQ和板卡的测控综合设计一、实验目的利用VB-ActiveDAQ实现PC机与板卡进行模拟量输入、开关量输出程序设计。二、预习要求1、详细阅读附录8:PCI1710HG多功能板卡;2、详细阅读附录9:PCI1710HG测控实验箱;三、实验软、硬件序号名称数量备注1PC计算机12PCI1710HG多功能板卡(主要:模拟量输入AI单元,数字量输出DO单元)1参见附录83PCI1710HG测控实验箱1参见附录94VisualBasic6.01参见附录6计算机PCI1710HG计算机PCI1710HG测控板卡603413463939DC24V——+DC24V10kDC24VDO指示灯31∽5VDO指示灯210k图1:计算机测控综合线路+——Pt100温度变送器250Ω+——+——五、实验内容与步骤1、程序界面设计图3:添加ActiveDAQ控件图2:添加控件图3:添加ActiveDAQ控件图2:添加控件1)添加AdvantechActiveDAQAIControl控件和AdvantechActiveDAQDOControl控件:注意:ActiveDAQ控件是台湾研华公司提供的,VisualBasic6.0未提供。首先在研华公司网站找到ActiveDAQ.exe文件,安装该文件后,在VB部件选项卡中就会出现ActiveDAQ控件集。选择“工程”菜单下的“部件…”选项,见图2),在弹出的对话框中,在“控件”选项卡属性中选中AdvantechActiveDAQAIControl和AdvantechActiveDAQDOControl,见图3),把它们加入到控件面板中,见图2),再加到程序窗体上。2)为了实现绘图,将控件面板中的Picture控件加到程序窗体上;3)添加MSFlexGrid表格控件:默认的控件面板中没有MSFlexGrid表格控件,因此首先要把它加入到控件面板中。选择“工程”菜单下的“部件…”选项,在弹出的对话框中,在“控件”选项卡属性中选中“MicrosoftFlexGridControl6.0(SP3)”复选框,单击“确定”按钮后,MSFlexGrid控件就添加到控件面板上了,见图2)。4)为了实现连续的自动采集,将控件面板中的Timer控件加到程序窗体上。5)添加其它控件。图4:程序窗体界面设计的程序界面见图4)。图4:程序窗体界面2、窗体、控件主要属性设置控件类型名称主要属性功能FormDAQFormBorderStyle=3运行时窗体固定大小Caption=ActiveDAQ综合测控在标题栏显示程序名称PicturePicture1BackColor为白色绘图区FrameFrame1Caption=统计计算统计区FrameFrame2Caption=报警指示报警区TextBoxTempTextText为空显示当前电压值TextBoxAverTextText为空显示平均电压值TextBoxMinTextText为空显示最小电压值TextBoxMaxTextText为空显示最大电压值ShapeAlarm1FillColor=&H0080FF00&(绿)上限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形ShapeAlarm2FillColor=&H0080FF00&(绿)下限指示灯,初始绿色FillStyle=0-Solid固定添充模式Shape=3-Circle圆形MSFlexGridGridCols=200两列Rows=200200行CommandButtonCmdsetCaption=板卡设置设置板卡命令CommandButtonCmdget1Caption=间断采集间断采集电压命令Enabled=False初始无效CommandButtonCmdget2Caption=连续采集连续采集电压命令Enabled=False初始无效CommandButtonCmdnewCaption=刷新数据刷新曲线与表格数据命令Enabled=False初始无效CommandButtonCmdquitCaption=关闭程序关闭程序命令TimerTimer1Enabled=False时钟无效Interval=1000时钟周期DAQAIDAQAI1在程序中设置板卡模拟量输入控件DAQDODAQDO1在程序中设置板卡数字量输出控件3、程序代码设计'定义变量DimnumAsInteger'采集的数据个数DimData(1000)AsSingle'数据的数值形式Dimfiledata(1000)AsString'数据的字符串形式DimmaxdataAsInteger'上限电压值DimmindataAsInteger'下限电压值DimmaxLxAsInteger'最大坐标x值DimmaxLyAsInteger'最大坐标y值'程序初始化PrivateSubForm_Load()maxdata=30:mindata=25maxLx=200:maxLy=50alarm1.FillColor=QBColor(10)alarm2.FillColor=QBColor(10)Timer1.Enabled=FalseCalltabinit'调用表格初始化子程序EndSub'板卡设置PrivateSubCmdset_Click()DAQAI1.SelectDeviceDAQDO1.SelectDeviceDAQAI1.StartChannel=1DAQAI1.SampleRate=500DAQAI1.OpenDevice'打开模拟量输入端口DAQDO1.OpenDevice'打开数字量输出端口Cmdget1.Enabled=TrueCmdget2.Enabled=TrueCmdnew.Enabled=True'使按钮有效EndSub'间断采集数据PrivateSubCmdget1_Click()Timer1.Enabled=FalseCallgetdataEndSub'使时钟有效PrivateSubCmdget2_Click()Timer1.Enabled=TrueEndSub'连续采集数据PrivateSubTimer1_Timer()CallgetdataEndSub'采集数据Subgetdata()Ifnum>199ThenCmdnew_Clickfiledata(num)=DAQAI1.RealInput(1)'获取AI0通道数据Data(num)=Val(filedata(num))Data(num)=(Data(num)-1)*50'标度变换(温度值)TempText.Text=Format$(Data(num),"0.0")Grid.Col=1:Grid.Row=num+1Grid.Text=Format$(Data(num),"0.0")Callalarmnum=num+1Callcal'调用计算极值、平均值子程序Calldraw'调用画曲线子程序EndSub'计算极值、平均值Subcal()OnErrorGoTohhSum=0Max=Data(0):Min=MaxFori=0Tonum-1IfData(i)>=MaxThenMax=Data(i)IfData(i)<=MinThenMin=Data(i)Sum=Sum+Data(i)Nextiaver=Sum/numMaxText.Text=Format$(Max,"0.0")MinText.Text=Format$(Min,"0.0")AverText.Text=Format$(aver,"0.0")hh:ExitSubEndSub'画曲线Subdraw()OnErrorGoTohhPicture1.ClsPicture1.DrawWidth=2Picture1.BackColor=QBColor(15)Picture1.Scale(0,maxLy)-(maxLx,0)Fori=1Tonum-1X1=(i-1):Y1=Data(i-1)X2=i:Y2=Data(i)Picture1.Line(X1,Y1)-(X2,Y2),QBColor(0)Nextihh:ExitSubEndSub'报警指示Subalarm()If(Data(num)<=mindata)Thenalarm1.FillColor=QBColor(12)DAQDO1.Bit=1DAQDO1.BitOutput(1)EndIfIf(Data(num)>=maxdata)Thenalarm2.FillColor=QBColor(12)DAQDO1.Bit=2DAQDO1.BitOutput(1)EndIfIf(Data(num)>mindataAndData(num)<maxdata)Thenalarm1.FillColor=QBColor(10)alarm2.FillColor=QBColor(10)DAQDO1.Bit=1DAQDO1.BitOutput(0)DAQDO1.Bit=2DAQDO1.BitOutput(0)EndIfEndSub'刷新表格数据PrivateSubCmdnew_Click()Ifnum=0ThenExitSubTempText.Text="":AverText.Text=""MinText.Text="":MaxText.Text=""Grid.ClearPicture1.ClsFori=0Tonum-1Data(i)=0:filedata(i)=""Nextinum=0CalltabinitEndSub'数据表格初始化PublicSubtabinit()Grid.Cols=2Grid.Rows=200+1Grid.ColWidth(0)=700Grid.ColWidth(1)=950Grid.Col=0Fori=1To200Grid.Row=iGrid.Text=""+Str$(i)NextiGrid.Row=0Grid.Col=0:Grid.Text="序号"Grid.Col=1:Grid.Text="温度值"Grid.TopRow=1'置在第一页Grid.LeftCol=1EndSub'关闭程序PrivateSubCmdquit_Click()UnloadMeEndSub'关闭板卡模拟量输入、数字量输出端口PrivateSubForm_Unload(CancelAsInteger)DAQDO1.Bit=1DAQDO1.BitOutput(0)DAQDO1.Bit=2DAQDO1.BitOutput(0)DAQDO1.CloseDeviceDAQAI1.CloseDeviceEndSub(特别提示:参考程序中若有不妥或错误之处,请调试、修改)4、运行程序图5:程序运行界面程序设计、调试完毕,运行程序,见图5)。图5:程序运行界面1)首先进行板卡设置:单击“板卡设置”按钮,选中板卡设备:PCI1710HG,单击“Select”按钮(两次);2)连续单击“间断采集”按钮或单击一次“连续采集”按钮,程序窗体中文本对象中的数字、图形控件中的曲线都将随传感器检测温度变化而变化;3)当测量温度小于设定的下限温度值时,程序中下限指示灯改变颜色,相应地实验箱上DO指示灯1亮;当测量温度值大于设定的上限温度值时,程序中上限指示灯改变颜色,相应地实验箱上DO指示灯2亮,同时蜂鸣器响。5、实验扩展1)要求在程序运行中设置模拟量输入通道号、开关量输出通道号、采样频率、时钟周期、上限电压值、下限电压值等参数(设计一参数设置窗体),如何修改程序?2)绘制测量数据变化图形时:将连续的曲线图改为间断的散点图,如何修改程序?3)将采集的数据保存在数据文件(或数据库)中,并能打开、调用,如何修改程序?。实验六基于Kingview和板卡的模拟量输入与输出一、实验目的1、掌握利用数据采集板卡进行模拟信号计算机采集的硬件实现方法;2、掌握利用数据采集板卡进行模拟信号计算机输出的硬件实现方法;3、掌握利用组态王进行模拟量输入(AI)与输出(AO)的软件设计方法。二、预习要求1、详细阅读附录8:PCI1710HG多功能板卡;2、详细阅读附录9:PCI1710HG测控实验箱; 3、详细阅读附录10:Kingview6.0使用指南;三、实验软、硬件序号名称数量备注1PC计算机12PCI1710HG多功能板卡(主要:模拟量输入AI单元、模拟量输出AO单元)1参见附录83PCI1710HG测控实验箱(主要:电位器)1参见附录94YD-28A动态应变仪15等强度梁式电阻应变传感器16标准砝码(1Kg)47Kingview6.01参见附录10四、实验线路图1:电位器模拟电压输入线路图1:电位器模拟电压输入线路6860PCI1710数据采集卡计算机0∽5VDC24V+_700AI指示灯计算机计算机图2:计算机模拟电压输出线路图2:计算机模拟电压输出线路5758PCI1710HG数据板卡AO0_OUTAOGND0∽10VAO指示灯计算机计算机五、实验内容(一)模拟量输入(AI)1、建立新工程项目工程名称:AI;工程描述:模拟量输入项目2、制作图形画面画面名称:模拟量输入。执行菜单“图库/打开图库”命令,为图形画面添加一仪表对象图3:图形画面;在开发系统工具箱中为图形画面添加一文本对象“000”、一“实时趋势曲线”控件;见图图3:图形画面3、定义板卡设备图4:选择板卡设备在组态王工程浏览器的左侧选择“设备”中的“板卡”,在右侧双击“新建”,运行“设备配置向导图4:选择板卡设备选择:智能模块研华YHPCI1710YHPCI1710,见图4)。单击“下一步”,给要安装的设备指定唯一的逻辑名称,如:PCI1710HG;单击“下一步”,给要安装的设备指定地址:C000;单击“下一步”,不改变通信参数;单击“下一步”,显示所安装设备的所有信息;请检查各项设置是否正确,确认无误后,单击“完成”。设备定义完成后,您可以在工程浏览器的右侧看到新建的外部设备“PCI1710”。在左侧看到设备逻辑名称“PCI1710HG”。在定义数据库变量时,您只要把I/O变量连结到这台设备上,它就可以和组态王交换数据了。4、定义I/O变量在工程浏览器的左侧选择“数据库/数据词典”,在右侧双击“新建”,弹出“定义变量”对话框,定义变量AI,变量类型为I/O实数。变量的最小值0、最大值5按输入电压范围(0∽5V)确定。定义I/O实数变量时,最小原始值、最大原始值的设置是关键。它们是根据采集板卡的电压输入范围和A/D转换位数确定的。因采用的PCI1710HG板卡模拟电压输入范围是-5V∽+5V,A/D是12位,因此计算机采样值为212-1=4095,即-5V对应0,+5V对应4095,电压与采样值成线性关系,因为电位器的输出电压范围是0∽5V,那么变量属性中的最小原始值应为2048,最大原始值为4095。图5:定义AI变量连接设备为PCI1710HG(前面已定义),电位器的输出电压接板卡AI0通道,故寄存器为AD0;数据类型为UINT;读写属性选只读;见图图5:定义AI变量5、建立动画连接1)建立仪表对象的动画连接图6:仪表对象动画连接双击画面中仪表对象,弹出“仪表向导”对话框,单击变量名文本框右边的?号,选择已定义好的变量“AI”,见图6)。图6:仪表对象动画连接2)建立“实时趋势曲线”控件对象动画连接,并修改部分属性,在“标识定义”选项卡中将时间轴的时间长度改为2分钟,见图7)。图7:图7:实时趋势曲线控件对象动画连接3)建立显示文本对象动画连接双击画面中测量值显示文本对象“000”,出现动画连接对话框,将“模拟值输出”属性与变量“AI”连接。6、调试与运行存储:设计完成后,在开发系统“文件”菜单中执行“全部存”命令将设计的画面和程序全部存储;配置主画面:在工程浏览器中,点击快捷工具栏上“运行”配置命令按钮,在出现的“运行系统设置”对话框中,进入主画面配置功能,选中制作的图形画面,单击“确定”按钮即将其配置成主画面。运行:在工程浏览器中,点击快捷工具栏上“VIEW”按钮或在开发系统中执行“文件/切换到view”命令,启动运行系统,见图8)。旋转电位器旋钮,改变其输出电压(范围是0∽5V),测控实验箱AI指示灯亮度随之变化,板卡AI0通道输入电压随之改变,“组态王”系统中的I/O变量“AI”值也会自动更新不断变化,画面文本对象中的数字、仪表对象中的指针、实时趋势曲线控件中的曲线都将随电位器输出电压(0∽5V范围)变化而变化。图8:运行画面7、实验扩展图8:运行画面1)将输入量改为Pt100检测到的温度量,温度变送器的测量范围是0∽200℃,线性输出4∽20mA,经250Ω电阻将电流信号转换为1∽5V电压信号输入板卡1通道。现要求:(1)程序画面文本对象、仪表对象显示温度实际测量值;(2)实时趋势曲线控件中的曲线随传感器测量温度变化而变化;2)现有虚拟电子秤硬件系统,实验框图见下图:虚拟电子秤系统框图虚拟电子秤系统框图标准砝码电桥盒电阻应变传感器动态电阻应变仪输出电压计算机PCI1710HG板卡已知:(1)标准砝码:每个1Kg,共4Kg;(2)电桥电路:四臂全桥;(3)动态电阻应变仪输出电压接PCI1710HG板卡AI2通道。请设计组态王“虚拟电子秤”软件系统,要求:(1)给电阻应变传感器加标准砝码,画面中显示砝码实际重量值;(2)给电阻应变传感器加动态载荷,画面中显示动态载荷变化曲线。(二)模拟量输出(AO)1、建立新工程项目工程名称:AO;工程描述:模拟量输出项目2、制作图形画面画面名称:模拟量输出。通过图库在图形画面中添加一“游标”对象、通过工具箱添加一“实时趋势曲线”控件等,见图9)。3、定义板卡设备选择:设备/板卡新建智能模块研华YHPCI1710YHPCI1710。图9:图形画面设备逻辑名称:PCI1710HG;设备地址:图9:图形画面4、定义I/O变量定义一个模拟量输出变量AO,寄存器为DA0,数据类型为UINT,读写属性为只写;见图10)。D/A转换时,各值的确定同A/D转换。组态王变量属性中的最小原始值为2048(对应输出0V),最大原始值为4095(对应输出10V);最小值,最大值可按计算机输出电压范围(0∽10V)确定。图10图10:定义AO变量1)建立“实时趋势曲线”控件对象动画连接:曲线1与变量AO连接;在“标识定义”选项卡中将时间轴的时间长度改为2分钟。2)建立“游标”对象动画连接:将游标对象与变量AO连接;并将滑动范围的最大值改为10。6、调试与运行将设计的画面全部存储并配置成主画面,启动画面运行程序,见图11)。图11:运行画面点击游标上下箭头,改变输出值(0∽10),画面中实时趋势曲线将随游标值变化而变化,“组态王”系统中的I/O变量“AO”值也会自动更新不断变化,板卡AO0_OUT通道输出电压随之改变(0∽10V),实验箱上AO图11:运行画面7、实验扩展1)游标对象换成文本对象,通过改变(人工输入)文本对象的数值来改变输出电压,请修改组态王程序。2)去掉游标对象,当变量AO值从0增加到10,再从10减小到0,不断循环变化,画面中实时趋势曲线将随AO值变化而变化,形成一个三角波形,见图12);同时,板卡AO0_OUT通道输出电压随之改变(0∽10V交替变化),实验箱上AO指示灯明暗交替变化。请按上述条件编写组态王应用程序。图12图12:三角波形运行画面1、定义I/O变量“AI”时,最小值,最大值与最小原始值、最大原始值有何关系?它们的大小对程序的运行有何影响?2、定义I/O变量“AO”时,最小值,最大值与最小原始值、最大原始值有何关系?它们的大小对程序的运行有何影响?
实验七基于Kingview和板卡的数字量输入与输出一、实验目的1、掌握利用数据采集板卡进行数字(开关)信号计算机输入的硬件实现方法;2、掌握利用数据采集板卡进行数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高污染工业企业减排路径之辩:威逼与利诱的多维审视
- 高校毕业生就业协议的多维审视与优化路径研究
- 高校学生奖励与资助管理系统的设计与实现:以具体高校为例
- 高校信息素养课程建设:现状、挑战与创新策略
- 初三上册政治第三单元导练题及答案
- (2026)幼儿园年检整改报告
- 2021年苏教版五年级语文上册期中测试卷及答案【1套】
- 2025年大同中小学教师招聘考试真题
- 2025年上海市皮肤病医院招聘考试真题
- 高中语文-议论文写作指导复习-新人教版
- 创新创业大赛赛前辅导
- 人教版八年级下册英语:期末学情调研测试卷(含答案)
- DB41T 2415-2023 高标准农田 建设项目验收规程
- 签订承诺防诈骗协议书范文模板
- HG/T 6270-2024 防雾涂料(正式版)
- 圆度、圆柱度测量仪检定规程
- DB32T4036-2021中小学食堂管理服务规范
- 机械制图标注规范课件
- 企业员工halal清真培训
- 高中毕业生登记表填写样表(四川版)
- 2023陆上石油天然气开采安全重点检查事项清单
评论
0/150
提交评论