亚新体育官方网站-亚新体育app是最具公信力品牌,以真人视讯;电子游戏及体育赛事等百种游戏深受玩家喜爱,亚新体育官方网站-亚新体育app成为亚洲最受欢迎的线上娱乐平台.

    1. <mark id="7z9h1"></mark><input id="7z9h1"></input>
      1. <i id="7z9h1"></i>
            技术天地
            基于MX组件的上位计算机与三菱PLC通信
            发表日期:2011-04-20

            基于MX组件的上位计算机与三菱PLC通信

            摘要:

            笔者曾以前拙文基于MS-COMMON组件与上位计算机的通信(杭州自动化10周年论文集亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,中国工控网等转载),随着FA产品的开放性等市场的要求亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,上位计算机与PLC的通信还是一个十分广泛的话题。三菱电机推出了MX-Componet组件,使我们开发上位计算机组态等更加方便快揭。

            关键词:通讯亚新体育官方网站-亚新体育app,控件,三菱电机

                 根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义亚新体育官方网站-亚新体育app,ActiveX是Micrsoft适应组件对象模型(Component Object Model,COM)开发技术提出的亚新体育官方网站-亚新体育app。核心COM允许应用程序之间互相通信和使用彼此的功能亚新体育官方网站-亚新体育app,组件对象模型起源于面向对象的编程(Object-oriented programming,OOP)的概念,并把这个模型延伸到操作系统亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,从而方便任何COM程序对象与其他需要的接口的COM对象通讯亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。

            目前亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,在工业控制FA领域,实现人机交互和数据备份的一般选择工业计算机及组态软件亚新体育官方网站-亚新体育app。笔者在南京某居住区中水处理项目管理计算机中亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,选用了Visal Basic6.0作为开发工具亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,结合三菱电机发布的MX-Component 控件亚新体育官方网站-亚新体育app,方便的实现了计算机与三菱PLC的通讯亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。由于采用三菱MX-Component 控件方面的文献资料比较少,笔者茁文,希望大家指正。

            SW3D5C-ACT-E软件目前版本3.0,支持OS有98,2000亚新体育官方网站-亚新体育app,XP等。平台支持VB亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,VC,VB.NET,VC.NET 亚新体育官方网站-亚新体育app,LABVIEW亚新体育官方网站-亚新体育app,BC等开发工具亚新体育官方网站-亚新体育app。经过安装SW3D5C-ACT-E亚新体育官方网站-亚新体育app,系统OCX控件列表内就有相应的驱动OCX:

            一  系统组成构架:


                            中水处理系统组成

            系统描述:由上位计算机亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,1号从站亚新体育官方网站-亚新体育app,2号从站亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。计算机和PLC之间通过RS-232通讯,直接在PLC编程口读取数据亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。

            1号站配置:

            电源难切绿逵俜酵?亚新体育app亚新体育官方网站-亚新体育app?椋?nbsp;  Q61P-A2

            主基板:     Q38B

            CPU难切绿逵俜酵?亚新体育app亚新体育官方网站-亚新体育app?椋?nbsp;  Q01CPU

            CCLINK主站:QJ61BT11

            本地输入??椋篞X40

            本地输出??椋篞Y40

            模拟量难切绿逵俜酵?亚新体育app亚新体育官方网站-亚新体育app?椋?nbsp; Q68ADI  采集PH亚新体育官方网站-亚新体育app,浊度等信号

            模拟量输出:  Q64DA   控制压滤机亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,风机亚新体育官方网站-亚新体育app,提升泵

            2号站配置:

            电源难切绿逵俜酵?亚新体育app?椋?nbsp;  Q61P-A2

            主基板:     Q35B

            CPU难切绿逵俜酵?亚新体育app?椋?nbsp;  Q01CPU

            CCLINK主站:QJ61BT11

            本地输入??椋篞X40

            本地输出难切绿逵俜酵?亚新体育app亚新体育官方网站-亚新体育app?椋篞Y40

            模拟量?亚新体育官方网站-亚新体育app?椋?nbsp; Q68ADI

            3-12号站

            远程输入输出:AJ65SBTB1-16D亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,AJ65SBTB1-16T

            分别采集远程水泵运行状态和监视设备。

            系统运行登陆画面


            编写登陆程序。

            标准语法:Open (Communication line opening)

            (1)   Applicable ACT controls

            This function is available for all ACT controls.

            (2)   Feature

            Opens the communication line.

            (3)   Format

            R R

            Visual Basic , Visual C++ ,VBA : lRet = object.Open()

            LonglRetReturned valueOutput

            VBScript : varRet = object.Open()

            VARIANTvarRetReturned value (LONG type)Output

            (4)   Explanation

            The line is connected on the basis of the value set to the property for Open

            method.

            (5)   Returned value

            Normal termination: 0 is returned.

            Abnormal termination: A value other than 0 is returned.

            (Refer to Chapter 6 ERROR CODES.)

            编写程序:

                Dim fLogin As New frmLogin

                fLogin.Show vbModal

                If Not fLogin.OK Then

                    '登录失败亚新体育官方网站-亚新体育app,退出应用程序

                    End

                End If

                Unload fLogin

                frmSplash.Show

            '//////////////////////////

                Open App.Path & "\wecom.txt" For Append As #1

                 Print #1, Format(Date) + " " + Format(Time) + "系统开启"

            '//////////////////////////

               frmSplash.Refresh

               Load frmMain

               IRet = frmMain.Q1.Open

            '/////////////////////////

               Print #1, Format(Date) + " " + Format(Time) + "准备与PLC通信"

              

            '/////////////////////////////

              If IRet <> 0 Then

              Print #1, Format(Date) + " " + Format(Time) + "无法链接到PLC"

              Close #1

            '////////////////////////////

                    MsgBox "无法链接到PLC,请检查硬件设置!"

            ex:    End

                 End If

            '///////////////////////////

            '  Print #1, Format(Date) + " " + Format(Time) + "与PLC通信成功"

              Close #1

             ' Set db = OpenDatabase(App.Path & "\base.mdb")

             ' Set res = db.OpenRecordset("xml")

             '  res.AddNew

             '  res.Fields(0) = "系统开启时间" + Format(Date) + "  " + Format(Time)

             '  res.Update

                Set fMainForm = New frmMain

                Load fMainForm

                Unload frmSplash

                fMainForm.Show


            运行界面

            数据采集亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,读取位元件亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,由于采样上来的16个位元件组成一个字读取的亚新体育官方网站-亚新体育app,必须在VB程序编写相应的程序,便于在界面反映每个阀门亚新体育官方网站-亚新体育app,泵的运行状态亚新体育官方网站-亚新体育app。

            标准语法亚新体育官方网站-亚新体育app;读数据块

            ReadDeviceBlock (Device batch-read)

            (1)   Applicable ACT controls

            This function is available for all ACT controls.

            (2)   Feature

            Batch-reads data from devices.

            (3)   Format

            Visual Basic , VBA : 

            lRet = object.ReadDeviceBlock(szDevice, lSize, lData(0))

            LonglRetReturned valueOutput

            StringszDeviceDevice nameInput

            LonglSizeNumber of read pointsInput

            实际采集输入状态子程序???/p>

            Dim jy As Integer

             Dim jx As Integer

             Dim jz As Integer

            '将读出的数据分配给数组亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,注意亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,这里从Y(1)开始

            '----OUTPUT Y

            '------READ X SATU

            IRet = Q1.ReadDeviceBlock("X0", 5, Wordx(1))

            '------READ Y SATU

            'IRet = Q1.ReadDeviceBlock("Y30", 8, Wordy(1))

              On Error Resume Next

            '   ky = 0

            '  For YI = 1 To 7

            '      Call DecBinX(Wordy(YI), OTY(YI))

            '      For jy = 1 To Len(OTY(YI))

            '        Y(ky + jy - 1) = CBool(Mid$(OTY(YI), 17 - jy, 1))

            '        Next jy

            '        ky = ky + 16

            '      Next YI

                     '-----INPUT X

             ' For i = 1 To 5

              '   Wordx(i) = Int(Rnd * 32766)

              '   Next

               kx = 0

              For xi = 1 To 5

                Call DecBinX(Wordx(xi), OTX(xi))

                  For jx = 1 To 16

                     x(kx + jx - 1) = CBool(Mid$(OTX(xi), 17 - jx, 1))

                    Next jx

                     kx = kx + 16

                   Next xi

                 For i = 0 To 7

                 Bar1(i).Value = Rnd * i + 60

                 Next

             LED1.LEDSTRING = Format(Date) + " " + Format(Time)

            '---------------------------显示处理----------

            '--------------------------------------------

            向PLC写数据块

            标准语法:WriteDeviceBlock (Device batch-write)

            (1)   Applicable ACT controls

            This function is available for all ACT controls.

            (2)   Feature

            Batch-writes data to devices.

            (3)   Format

            Visual Basic , VBA : lRet = object.WriteDeviceBlock(szDevice, lSize, lData(0))

            LonglRetReturned valueOutput

            StringszDeviceDevice nameInput

            LonglSizeNumber of write pointsInput

            LonglData(n)Device values to be writtenInput

            Visual C++  : lRet = object.WriteDeviceBlock(szDevice, lSize,  lplData)

            LonglRetReturned valueOutput

            CStringszDeviceDevice nameInput

            LonglSizeNumber of write pointsInput

            lplDataDevice values to be writtenInput

            Long

            VBScript : varRet = object.WriteDeviceBlock(varDevice, varSize, varData)

            VARIANTvarRetReturned value(LONG type)Output

            VARIANTvarDeviceDevice name(character string type)Input

            VARIANTvarSizeNumber of write points(LONG type)Input

            Device values to be written

            VARIANTvarData Input

            (LONG array type)

            (4)   Explanation

            * The device values for lSize(varSize) are batch-written to the devices, beginning

            with the device specified in szDevice(varDevice).

            * Store the device values to be written in lData (lplData or varData).

            * Reserve an array of lSize (varSize) or more for lData (lplData or varData).

            样例程序:

            For i = 0 To 5

            If Val(Text1(i + 4)) = 0 Then

               MsgBox "参数错误亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app!请重新输入"

               Else

              IData(220 + i) = Val(Text1(i + 4))

            End If

            Next i

            IRet = frmMain.Q1.WriteDeviceBlock("D220", 6, IData(220))

               Text1(10) = Val(Text1(4)) / Val(Text1(5))

               Text1(11) = Val(Text1(6)) / Val(Text1(7))

               Text1(12) = Val(Text1(8)) / Val(Text1(9))

            生成数据报表亚新体育官方网站-亚新体育app。


            由于生成报表个性化等特点亚新体育官方网站-亚新体育app,更适合中小型监控设备亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。

            结束语:目前系统已经运行稳定2年多亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app。采用了三菱提供的控件编写上位机器程序,省去了烦琐冗长的通讯部分亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,开发人员只编写流程处理和工业工程程序难切绿逵俜酵?亚新体育app??。

            我们可以说亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app,用VB+MX-Component控件构件中小型监控系统是一种经济实用的方案亚新体育官方网站-亚新体育app。

            参考文献:1.《MX Component Programming Manual》

                                   ------------------------三菱电机

                      2.《Visal Basic6 数据库开发》-----E.winemiller,J.Roff

                                   -----------------------清华大学出版

                   
              杭州和华电气工程有限公司 版权所有 地址:杭州市西湖区荆山岭路2号汇峰国际D座206 邮箱入口 | 隐私声明 | 联系我们  
              技术热线:0571-88935188亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app亚新体育官方网站-亚新体育app、88935199 E-mail:webmaster@hzhehua.com  
            浙ICP备11009523号-1
             
            亚新体育官方网站-亚新体育app
            1. <mark id="7z9h1"></mark><input id="7z9h1"></input>
              1. <i id="7z9h1"></i>