Select your language

Washing machine web 2.0. HMI interface in Vb.net

Written by David Posted on 3 July, 2011 at 11:10

Well, I leave the video of the application in vb.net working.

Web washing machine 2.0

I have modified the class in charge of communicating with the plc. In this case we will call the variables by their name. This is the class:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Imports TwinCAT. Ads
PublicClass ClassAds
    PrivateAs TcAdsClient
    DimAs AdsState
    Enum AdsState
        Disconnected
        ErrorConnectconnectedOk
        
    EndEnum

"PLC ADS"
    PublicFunction Connect()AsString
        Try
            =New TcAdsClient
            adsClient. Connect("192.168.255.2.1.1"801)
            adsClient. Timeout=5000

            If adsClient. Readstate. AdsState. ToString="Run"Then
                = AdsState. ConectadoOk
            else
                = AdsState. ErrorConect
            EndIf
            Return adsClient. Readstate. AdsState. ToString
        Catcherras exception
            = AdsState. ErrorConect
            Return"Error"
        EndTry

    EndFunction

    PublicFunction ValorIntPorName(ByValAsString)

        DimAs AdsStream
        DimAs AdsBinaryReader

        Try
            'Recover Var
            Number DimAsInteger
            = adsClient. CreateVariableHandle(Name)

            =New AdsStream(2)
            adsClient. Read(Var, dataStream)
            =New AdsBinaryReader(dataStream)
            Return Read. ReadInt16
        catcherras exception

            = adsState. ErrorConect
            Return0
        EndTry
    EndFunction
    PublicFunction txtName(ByValAsString)

        DimAs AdsStream
        DimAs AdsBinaryReader
        DimAsString
        DimAsInteger

        Try
            'Recover Var
            Number DimAsInteger
            = adsClient. CreateVariableHandle(Name)

            =New AdsStream(31)
            = adsClient. Read(Var, dataStream)


            =New AdsBinaryReader(dataStream)
            'txt = Read.ReadString
            =NewString(Read. ReadChars(length))
            'txt = txt. Substring(0, txt. IndexOf("\0"))
            Return txt
        catcherras exception

            = AdsState. ErrorConect
            Return0
        EndTry

    EndFunction
    PublicSub WriteBoolPorName(ByValAsStringByValAsBoolean)

        DimAs AdsStream
        DimAs AdsBinaryWriter

         Try'Recuperar
            Numero Var
            DimAsInteger
            = adsClient. CreateVariableHandle(Name)
            =New AdsStream(1)
            =New AdsBinaryWriter(dataStream)
            Write. Write(Value)

            adsClient. Write(var, dataStream)
        Catcherras exception
            = AdsState. ErrorConect
        EndTry
    EndSub

    PublicSub Disconnect()
        If= Adsstate. ConectadoOkThen adsClient. Dispose()
        = AdsState. Disconnected
    EndSub
    PublicFunction StateAds()AsString
        If= AdsState. ConectadoOkthen
            return1
        else
            return0
        endif
    endfunction
#End region
endclass                   

To be able to read the variables by name, what we do is retrieve the Value that identifies this variable. We do this with the following function:
Var = adsClient.CreateVariableHandle(Name)
Name is the name of the variable. For global variables we will call them by . VariableName and for the rest ProgramName.VariableName.

- Publicidad -

I have created an enumeration to define the states of communication. And a new function to retrieve text from the plc. Specifically I am interested in the variable MAIN.txtWarning, this variable informs us of the current state of the sequence.

This is the code of the main form:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
PublicClass Form1
    DimAsNew ClassAds


    
PrivateSub buConectar_Click(ByValAs System. ObjectbyValas system. EventArgs)Handles buConnect. Click
        Plc1.Connect()
        Timer1. Enabled=True
    EndSub

    PrivateSub buDesconectar_Click(ByValAs System. ObjectbyValas system. EventArgs)Handles buDesconnect. Click
        If Plc1.StateAds=1Then Plc1.Disconnect()

    EndSub

    PrivateSub Timer1_Tick(ByValAs System. ObjectbyValas system. EventArgs)Handles Timer1. Tick
        Timer1. Enabled=False

        If Plc1.StateAds 1Then
            MessageBox. Show("Error Ads")
            ExitSub
        EndIf

        laTemp. Text="Temperature= "& Plc1.IntValueByName(". Temperature")&"ºC"
        laNivelAgua. Text="Water  Level= "& Plc1.ValueIntByName(". Water Level")
        theState. Text= Plc1.txtByName("MAIN.txtWarning")

        pbM1. Visible= plc1.ValueIntByName(". M1")
        pbPump. Visible= pbM1. Visible
        pbM2. Visible= plc1.ValueIntByName(". M2")
        pbY1. Visible= plc1.ValueIntByName(". Y1")
        pbY2. Visible= plc1.ValueIntByName(". Y2")

        pbX1. Visible= plc1.ValueIntByName(". X1")
        ImgFondo(Plc1.ValueIntPorName(". CajonCerrado"))

        Timer1. Enabled=true
    endsub
    privatesub imgFondo(byValasinteger)
        ifthen
            pbFondo. ImageLocation=".. /.. /Resources/LavPreparada.png"
        Else
            pbFondo. ImageLocation=".. /.. /resources/TodoParado.png"
        EndIf
    EndSub

    PrivateSub buMarcha_Click(ByValAs System. ObjectbyValas system. EventArgs)Handles buMarcha. Click
        If Plc1.StateAds 1ThenExitSub
        Plc1.WriteBoolByName(". End

    Sub
    PrivateSub Sub buCerrarCajon_Click(ByValAs System. ObjectbyValas system. EventArgs)Handles buCloseBox. Click
        If Plc1.StateAds 1ThenExitSub
        Plc1.WriteBoolByName(". CajonClosed"True)
        Plc1.WriteBoolByName(". DoorClosed"True)
    EndSub
    PrivateSub buAbrirCajon_Click(ByValAs System. ObjectbyValas system. EventArgs)Handles buAbrirCajon. Click
        If Plc1.StateAds 1ThenExitSub
        Plc1.WriteBoolByName(". CajonClosed"False)
        Plc1.WriteBoolByName(". DoorClosed"False)
    EndSub
    PrivateSub Form1_Disposed(ByValAsObjectByValAs System. EventArgs)HandlesMe. Disposed
        If Plc1.StateAds=1Then Plc1.Disconnect()
    EndSub
EndClass             

This code doesn't have much history. It's about establishing the connection. Using a timer, read the status of the motors and valves, to show or not the pictureBox. The background image is changed using the ImgFondo function, depending on the state, showing one or another image. The rest of the code is the events of the Buttons to open/close or start the washing machine.
Here, I leave both the plc program and the application in vb.net. Remind you to change the AMS address in ClassAds. To continue with our project we will have to start the web server and create the functions (vb.net) to record in the database.

Bookmark on DeliciousDigg this postRecommend on Facebookshare via RedditShare with StumblersTweet about itSubscribe to the comments on this post

Authors: David

See original.

HVAC project at the Javeriana University, finalist in the CALA Awards 2025 in the HVAC category

HVAC project at the Javeriana University, finalist in the CALA Awards 2025 in the HVAC category

The HVAC system installed in the building of the Faculty of Sciences of the Pontificia Universidad Javeriana, in Bogotá, was selected as a finalist in the HVAC category of the CALA Awards 2025....

Concord Project in La Lima Free Trade Zone, finalist in the HVAC category of the CALA Awards 2025

Concord Project in La Lima Free Trade Zone, finalist in the HVAC category of the CALA Awards 2025

The HVAC system project carried out by MultiFRIO for the company Concord in the La Lima Free Trade Zone, in Cartago, received the final prize in the HVAC category of the CALA Awards 2025, a...

HVAC project at the Universidad Santiago de Cali, finalist in the CALA AWARDS HVAC category

HVAC project at the Universidad Santiago de Cali, finalist in the CALA AWARDS HVAC category

The air conditioning project of the Auditorium Building and the Technology Center of the new campus of the Santiago de Cali University was chosen as a finalist in the HVAC category of the CALA...

Carrier Launches Cold Climate Heat Pump with Maximum Efficiency and Low Noise

Carrier Launches Cold Climate Heat Pump with Maximum Efficiency and Low Noise

International. Carrier, a company belonging to Carrier Global Corporation, presented significant improvements in its heat pump technology designed for cold climates.

Expert Forum to Address Energy Efficiency and 4.0 Technologies in HVAC&R Systems

Expert Forum to Address Energy Efficiency and 4.0 Technologies in HVAC&R Systems

Colombia. On July 10, 2025, the specialized forum "Towards Energy Excellence in HVAC&R: ISO 50001, Technologies 4.0 and RETSIT" will be held, a space that will bring together experts and...

LG Electronics attributes lower-than-expected results to U.S. tariffs and market slowdown

LG Electronics attributes lower-than-expected results to U.S. tariffs and market slowdown

International. LG Electronics reported a preliminary operating profit of approximately $460 million for the second quarter of the year, a figure that not only disappointed the market, but...

Hisense highlights air conditioning innovation during the 2025 FIFA Club World Cup

Hisense highlights air conditioning innovation during the 2025 FIFA Club World Cup

United States. Hisense is creating unforgettable moments for fans during the 2025™ FIFA Club World Cup with its global "Own the Moment" campaign.

AFEC renews its Board of Directors and updates its statutes at its 2025 General Assembly

AFEC renews its Board of Directors and updates its statutes at its 2025 General Assembly

International. The meeting brought together 130 professionals from the HVAC sector in Girona to review results, redefine structures and project the future of air conditioning in Spain.

Technology, efficiency and innovation at the Virtual HVAC Pre-Congress 2025

Technology, efficiency and innovation at the Virtual HVAC Pre-Congress 2025

International. As a prelude to the Refriaméricas 2025Academic Congress, the Virtual HVAC Pre-Congress will be held on July 8, a free technical conference that will bring together experts and leading...

Chile leads with a gender focus in regional meeting on the Montreal Protocol

Chile leads with a gender focus in regional meeting on the Montreal Protocol

Costa Rica. Within the framework of the Meeting of Networks of National Ozone Officers of Latin America, held from June 17 to 19 and organized by the United Nations Environment Program, Chile stood...

Free Subscription
Remember Me
SUBSCRIBE TO OUR NEWSLETTER
DO YOU NEED A SERVICE OR PRODUCT QUOTE?
LASTEST INTERVIEWS
SITE SPONSORS










LASTEST NEWSLETTER
Ultimo Info-Boletin