首页 上一页 1 2 3 4 下一页 尾页

最新版MCGS高级开发指南(五) 点击:6740 | 回复:62



tzzabc

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:20帖 | 119回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2001年8月09日
发表于:2003-11-20 08:34:00
楼主
3.11 编制简单的设备驱动构件 本章以上各节所讲的是编制一个通用设备驱动构件的具体方法和技巧,看起来比较复杂和难懂,但在实际应用中,如果设备的功能和作用已经确定,而你的目标也只是完成具体的工程,那么,设备驱动构件的编制就要简单的多。下面以中泰PC6319模拟量输入板和研华的亚当模块ADAM4050为例,讲解如何编制特定功能的设备驱动构件。 中泰PC6319设备驱动构件 功能要求 假定只须使用中泰PC6319接口卡的10个通道,且接口卡的跳线设置为:单端输入、0~10V输入量程、数码转换方式为单极性,要求本设备构件能对10个通道的数据进行采集。 开发步骤 根据前面所述,利用MCGS的高级开发向导,生成一个独立设备驱动构件的源程序框架;假定工程名设为:My6319,类型名设为:我的6319; 把属性DevChannel中的值该为10;把接口GetChlType中的代码该为: Dim i As Long For i = 0 To 9 Dat(i) = 2 msg(i) = "AD输入"+format$(I+1,”0”) Next i 参照中泰PC6319中给出的例程,在接口CollectDevDat中编制如下程序代码: Dim i as Long, h as Long, l as Long For i=0 to 9 Outp mHandle, DevBaseIO, i ‘设置AD通道 Outp mHandle, DevBaseIO+1, 0 ‘启动AD转换 Do ‘等待AD转换结束 If Inp(mHandle, DevBaseIO + 2) < 128 Then Exit Do Loop h = Inp(mHandle, DevBaseIO + 2) And &HF ‘读高4位 l = Inp(mHandle, DevBaseIO + 3) ‘读低8位 dd(i) =( h * 256 + l)*10000/4096 ‘转换为mV数 Next i 编译工程,得到DLL文件My6319.dll,把该文件拷贝到MCGS的program\drivers目录下,即可完成本设备构件的编程工作。 在MCGS组态环境中,按设备工具箱上的“设备管理”按钮,进入设备管理窗口,通过“浏览”按钮把新生成的设备驱动构件选取到设备工具箱中即可在MCGS中使用新设备。 研华ADAM4050设备驱动构件 功能要求 能随时读入7个开关量输入通道的状态和设置8个开关量输出通道的输出状态。 开发步骤 根据前面所述,利用MCGS的高级开发向导,生成一个通讯子设备驱动构件的源程序框架;假定工程名设为:My4050,类型名设为:我的4050 定义一个属性DevNumber,用来标识模块的地址号 Public DevNumber As Long 把属性DevChannel中的值该为15; 把接口GetChlType中的代码该为: Dim i As Long For i = 0 To 14 IF i<=6 then Dat(i) = 1 msg(i) = "DI输入"+format$(i,”0”) else Dat(i) = -1 msg(i) = "DO输出"+format$(i-7,”0”) endif Next i 在接口CollectDevDat中编制如下程序代码: On Error Resume Next Dim flag As Long flag = CollectOneComm(mParent, DevNumber, dat) CollectDevDat = 0 If flag <> 0 Then CollectDevDat = -1 参照研华亚当模块的通讯协议,在程序模块DevBas中编制如下程序: Option Explicit Dim InputByte(127) As Byte Dim OutPutByte(127) As Byte 通过串口采集ADAM模块数据。 Public Function CollectOneComm(comm As DevCom232, ByVal num As Long, dat As Variant) As Long Dim Cmd As String, i As Long, m As Long ‘准备输出数据 m = 0 For i = 7 To 14 m = m Or (dat(i) * 2 ^ (i - 7)) Next i ‘准备输出命令字符串 Cmd = "#" + Right(("00" + Hex$(num)), 2) + "00" Cmd = Cmd + Right(("00" + Hex$(m)), 2) + Chr$(13) ‘和模块进行通讯,向模块写输出通道状态 m = Write4050Data(Cmd, comm) If m = -1 Then CollectOneComm = -1: Exit Function ‘准备读取通道状态命令字符串 Cmd = "$" + Right(("00" + Hex$(num)), 2) + "6" + Chr$(13) ‘和模块进行通讯,读取输入通道状态 m = Read4050Data(Cmd, comm) If m = -1 Then CollectOneComm = -1: Exit Function ‘进行数据转换 For i = 0 To 6 dat(i) = Sgn(2 ^ i And m) Next i CollectOneComm = 0 End Function 通过调用串口父设备的ComOutDat和ComInDat两个函数实现从ADAM模块读数据。 Public Function Read4050Data(ByVal Cmd As String, comm As DevCom232) As Long On Error Resume Next Dim i As Long, iLen As Long ‘把命令字符串转换成字节数组 For i = 1 To Len(Cmd) OutPutByte(i - 1) = Asc(Mid$(Cmd, i, 1)) Next i ‘通过串行口父设备,给模块发指令 comm.ComOutDat Len(Cmd), OutPutByte() ‘等待模块返回信息 iLen = comm.ComInDat(InputByte(), 0, 0, 13, 1500) If iLen <= 0 Then Read4050Data = -1: Exit Function ‘把字节数组转换成字符串 Cmd = "" For i = 0 To iLen Cmd = Cmd + Chr$(InputByte(i)) Next i ‘判断返回结果是否正确 If Mid$(Cmd, 1, 1) <> "!" Then Read4050Data = -1: Exit Function ‘转换读取的数据值 Read4050Data = Val("&h" + Mid(Cmd, 4, 2)) End Function 通过调用串口父设备的ComOutDat和ComInDat两个函数实现向ADAM模块输出数据。 Public Function Write4050Data(ByVal Cmd As String, comm As DevCom232) As Long On Error Resume Next Dim i As Long, iLen As Long ‘把命令字符串转换成字节数组 For i = 1 To Len(Cmd) OutPutByte(i - 1) = Asc(Mid$(Cmd, i, 1)) Next i ‘通过串行口父设备,给模块发指令 comm.ComOutDat Len(Cmd), OutPutByte() ‘等待模块返回信息 iLen = comm.ComInDat(InputByte(), 0, 0, 13, 1500) ‘判断返回结果是否正确 If iLen <= 0 Then Write4050Data = -1: Exit Function If Chr$(InputByte(0)) <> ">" Then Write4050Data = -1: Exit Function Write4050Data = 0 End Function 编译工程,得到DLL文件My4050.dll,把该文件拷贝到MCGS的program\drivers目录下,即可完成本设备构件的编程工作。



409124245

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2002年2月06日
发表于:2002-03-28 16:12:00
1楼
如何下载高级指南

tzzabc

  • 精华:3帖
  • 求助:0帖
  • 帖子:20帖 | 119回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2001年8月09日
发表于:2002-03-28 20:18:00
2楼
请您告诉您的详细联系方式,以便给您邮寄软件光盘.

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-04-01 13:50:00
3楼
我的联系详细地址:深圳市高新区南区R3-B4F爱科达电脑(深圳)有限公司 丑增伟 邮编 518075 请寄高级开发指南光盘

tzzabc

  • 精华:3帖
  • 求助:0帖
  • 帖子:20帖 | 119回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2001年8月09日
发表于:2002-04-02 13:01:00
4楼
已经安排邮寄,请稍候.

RTU

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2002年2月06日
发表于:2002-04-02 15:13:00
5楼
给我寄一份高级开发和最版软件,可以吗?新疆乌鲁木齐石化高级中学,吕鹏,830019

沧海狞笑

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2001年11月06日
发表于:2002-08-08 10:28:00
6楼
给我寄给我寄一份高级开发和最版软件吧,我的地址是:江苏省徐州市中国矿业大学信电学院华洋通信设备厂。邮编:221008。收件人:李靖。联系电话0516-3885682-8402。我们需要做一个监控方面的工程。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-08-10 16:32:00
7楼
没问题,尽快安排给您邮寄!

金宏

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2002年11月22日
发表于:2003-03-24 18:08:00
8楼
给我寄给我寄一份高级开发和最版软件吧,我正在学习组态软件。

karen

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2003年4月03日
发表于:2003-04-07 18:28:00
9楼
给我寄一份高级开发和最版软件,可以吗?我的地址是:湖北省武汉市武汉理工大学(余家头校区)10信箱,邮编:430063,收件人:黄金。

meikanshu

  • 精华:0帖
  • 求助:0帖
  • 帖子:61帖 | 256回
  • 年度积分:0
  • 历史总积分:1615
  • 注册:2002年3月25日
发表于:2003-08-14 10:29:00
10楼
我对你们的组太软件MCGS很感兴趣,我想先试用一下,能否给我寄一份通用版51的高级开发工具软件和通用版设备驱动程序(包括PLC,仪表,板卡,模块等),谢谢。 我的地址是 浙江省丽水市上水南3号纳爱斯公司设备处 张良华 邮编323000

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-14 11:15:00
11楼
楼上几位朋友请稍等几日,我会尽快安排。 谢谢!

superkf

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 2回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2003年4月17日
发表于:2003-08-26 21:45:00
12楼
给我也寄一份高级开发指南和最新版的软件吧,我的地址是:湖南大学电气与信息工程学院 收件人:况菲 ,邮编:410082,非常感谢

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 08:35:00
13楼
没问题! 对了,我们公司9月10日下午1:30在长沙举办研讨会,地点在长沙华天大酒店,欢迎您参加。 谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 09:33:00
14楼
请问参加研讨会需要提前报名吗?如果需要,那么应该通过怎样的方式报名。谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 09:38:00
15楼
您直接到现场参加即可! 谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 11:27:00
16楼
给我也寄一份高级开发指南和最新版的软件吧,我的地址是:河南开封汴京路118号 方圆测控 王海 475002。谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 12:38:00
17楼
王海先生:您可以直接向你们朱经理、张经理索取。开封方圆是我们昆仑通态的老客户了。 谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 17:14:00
18楼
谢谢!请问ak47先生:能否提供PCI8333驱动程序源代码?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-08-27 18:21:00
19楼
可以与我们技术支持部联系。 欢迎您参加我们在郑州举办的研讨会。 谢谢!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-09-10 09:30:00
20楼
我也需要资料 河北路桥集团有限公司工程机械修理厂 石家庄市石栾路2号 李维华 050021 0311-6129627

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 下一页 尾页