上位机软件开发案例(上位机开发需要了解的知识)

软件开发 2784
今天给各位分享上位机软件开发案例的知识,其中也会对上位机开发需要了解的知识进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、

今天给各位分享上位机软件开发案例的知识,其中也会对上位机开发需要了解的知识进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

利用电脑做上位机开发一个软件,用单片机做下位机。在上位机上点击软件上的按钮能使单片机输出一路I/O口

主要涉渣岁及到单片机基础知识,重点是串口通信,上位机可以考虑vc和.net,这两种都可以。.net使用c#语言,感觉比较好上手,枝梁衫我也可猛腔以给你点视频教程,一学就会。

如何用c语言开发自己的上位机软件

一般开发上位机软件都雹敏是带图形界面的。C也能做出图形界面的软件,但是开发周期太长也不实用。所以最好还是需要会一些其他语言,例如C++,C#,Java这些做图形界面开发周期短的语言。既然会C,那么学习其他语言也只是一个熟悉语法的过程。所以很快就能上手,因为语言都是相通的嘛。可以开阔埋伏自己的视野去学习一下新的语言。不源液枝是说只会C有什么弊端,只是想说会的多才会知道语言之间的优劣。

能给我发个VB与三菱PLC通讯的源代码实例吗,非常感谢啊

得说明是什么型号的PLC啊,串口还是网口,VB6还是VB.NET?

算了,写段代码,VB.NET与Q系列以太网通讯的:

Imports System.Net

Imports System.Runtime.InteropServices

Public Class Form1

    Dim Handle1 As Int32

    Dim 扰睁EntLink1 As Boolean

    Dim ScanCount1 As Long

    Dim PLC As New EntQsPlc_Asc.PlcClient'EntQsPlc_ASC.DLL是Q系列以太网通讯组件

    Public Declare Function timeGetTime Lib "winmm.dll" () As UInt32

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.CenterToScreen()

        cmbReadMry.Items.Clear()

        cmbReadMry.Items.Add("X")

        cmbReadMry.Items.Add("Y")

        cmbReadMry.Items.Add("M")

        cmbReadMry.Items.Add("D")

        cmbReadMry.Items.Add("R")

        cmbReadMry.Items.Add("Z")

        '

        cmbWriteMry.Items.Clear()

        cmbWriteMry.Items.Add("X")

        cmbWriteMry.Items.Add("Y")

        cmbWriteMry.Items.Add("M")

        cmbWriteMry.Items.Add("D")

        cmbWriteMry.Items.Add("R")

        cmbWriteMry.Items.Add("Z")

        '

        cmbBitMry.Items.Clear()

        cmbBitMry.Items.Add("X")

        cmbBitMry.Items.Add("Y")

        cmbBitMry.Items.Add("M")

        '

        cmbReadType.Items.Clear()

        cmbReadType.Items.Add("INT16")

        cmbReadType.Items.Add("UINT16")

       困含 cmbReadType.Items.Add("DINT32")

        cmbReadType.Items.Add("HEX32")

        cmbReadType.Items.Add("REAL32")

        cmbReadType.Items.Add("BIN16")

        '

        cmbWriteType.Items.Clear()

        cmbWriteType.Items.Add("INT16")

        cmbWriteType.Items.Add("UINT16")

        cmbWriteType.Items.Add("DINT32")

        cmbWriteType.Items.Add("HEX32")

        cmbWriteType.Items.Add("REAL32")

        cmbWriteType.Items.Add("BIN16")

        cmbReadMry.SelectedIndex = 3

        cmbWriteMry.SelectedIndex = 3

        cmbBitMry.SelectedIndex = 2

        cmbReadType.SelectedIndex = 0

        cmbWriteType.SelectedIndex = 0

        lstRead.Items.Clear()

        txtWrite.Text = ""

        '

        cmbCmdType.SelectedIndex = 0

    End Sub

    Private Sub butLink_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLink.Click

        Dim re As Short

        Dim restr As String = ""

     缓尺岁   re = PLC.EntLink(Trim(txtLocalIP.Text), Val(txtLocalPort.Text), Trim(txtRemoteIP.Text), Val(txtRemotePort.Text), "DEMO", Handle1, 1000, CBool(cmbCmdType.SelectedIndex))

        txtReLink.Text = re.ToString

        If re = 0 Then

            EntLink1 = True

            MsgBox("PLC联接成功! ")

        Else

            EntLink1 = False

            MsgBox("PLC联接失败: "  restr)

        End If

    End Sub           

    Private Sub butClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butClose.Click

        Dim re As Short

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        re = PLC.DeLink(Handle1)

        txtReClose.Text = re.ToString

    End Sub

    Private Sub butRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butRead.Click

        Dim re As Short

        Dim i As Short

        Dim RD() As Object

        ReDim RD(Val(txtReadCnt.Text - 1))

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            ' Exit Sub

        End If

        Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbReadMry.SelectedIndex + 1

        Dim typ As EntQsPlc_Asc.PlcClient.DataType = cmbReadType.SelectedIndex + 1

        re = PLC.CmdRead(Handle1, mry, typ, CInt(txtReadAdd.Text), CUShort(txtReadCnt.Text), RD)

        txtReRead.Text = re.ToString

        lstRead.Items.Clear()

        For i = 0 To UBound(RD) Step 1

            If Not IsNothing(RD(i)) Then lstRead.Items.Add(RD(i))

        Next i

        If re  0 Then

            Timer1.Enabled = False

            butScan.Text = "Cycle R/W"

        End If

    End Sub

    Private Sub butWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butWrite.Click

        Dim re As Short

        Dim i As Short

        Dim temp() As String

        Dim WD() As Object

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        ReDim WD(Val(txtWriteCnt.Text) - 1)

        temp = Split(txtWrite.Text, vbCrLf)

        For i = 0 To UBound(WD) Step 1

            If i  UBound(temp) Then

                WD(i) = 0

            Else

                WD(i) = Trim(temp(i))

            End If

        Next i

        Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbWriteMry.SelectedIndex + 1

        Dim typ As EntQsPlc_Asc.PlcClient.DataType = cmbWriteType.SelectedIndex + 1

        re = PLC.CmdWrite(Handle1, mry, typ, CInt(txtWriteAdd.Text), CUShort(txtWriteCnt.Text), WD)

        txtReWrite.Text = re.ToString

        If re  0 Then

            Timer1.Enabled = False

            butScan.Text = "Cycle R/W"

        End If

    End Sub

    

    

    Private Sub butScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butScan.Click

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Timer1.Enabled = Not Timer1.Enabled

        If Timer1.Enabled Then

            ScanCount1 = 0

            butScan.Text = "Stop R/W"

        Else

            butScan.Text = "Cycle R/W"

        End If

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Timer1.Enabled = False

        Dim tim As Integer = timeGetTime

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        '

        Call butRead_Click(Nothing, Nothing)

        Call butWrite_Click(Nothing, Nothing)

        '

        If (Val(txtReRead.Text)  0) Or (Val(txtReWrite.Text)  0) Then

            butScan.Text = "Cycle R/W"

            Exit Sub

        Else

            ScanCount1 += 1

            txtScanCnt.Text = ScanCount1

            txtScanPrd.Text = (timeGetTime - tim)  "ms"

        End If

        Timer1.Enabled = True

    End Sub

    Private Sub butBitTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitTest.Click

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim rd As Boolean

        Dim re As Short

        Dim mry As EntQsPlc_Asc.PlcClient.PlcMemory = cmbBitMry.SelectedIndex + 1

        re = PLC.Bit_Test(Handle1, mry, CUShort(txtBitAdd.Text), rd)

        txtBitTest.Text = rd

        txtReBit.Text = re

    End Sub

    Private Sub butBitSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitSet.Click

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim re As Short

        re = PLC.Bit_Set(Handle1, cmbBitMry.SelectedIndex + 1, Val(txtBitAdd.Text))

        txtReBit.Text = re

    End Sub

    Private Sub butBitRst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBitRst.Click

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim re As Short

        re = PLC.Bit_Reset(Handle1, cmbBitMry.SelectedIndex + 1, Val(txtBitAdd.Text))

        txtReBit.Text = re

    End Sub

End Class

关于上位机软件开发案例和上位机开发需要了解的知识的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码