.NET - C# - Apps im Maschinenbau - Konzept, Stand heute, was ist möglich?

Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwie stehe ich auf dem Schlauch...

Ich verstehe immer weniger, warum Du nach Lösungsmöglichkeiten fragst, wenn Du doch eigentlich schon Komponenten gesetzt hast.
Also so wie ich das sehe muss auf Teufel komm raus ein PC und C eingesetzt werden, das zeigen mir zumindest Deine bisherigen Kommentare.

Das ist sicherlich EIN möglicher Weg, aber aus meiner Sicht nicht der zeitlich kürzeste.
Und, wie schon erwähnt, Instandhaltungs- bzw. Wartungsfreundlich ist das auch eher nicht...

gesendet von meinem Moto G mit Tapatalk
 
@Morymmus:
Der Ansatz des TE hat schon seinen Sinn.
Wenn man die .Net-Applikation richtig aufstellt dann kann sie wie ein Flex-Projekt gehandelt werden - mit dem einen Unterschied, dass sie so ganz nebenher eine Menge mehr kann (die Bremse bist du dann wieder selber).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Larry

Ja, sorry, DAS hatte ich auch nicht gemeint.
Nur frag ich dann nicht allgemein nach Lösungsmöglichkeiten sondern konkret zu der bereits festgelegten Struktur/Hardware...

gesendet von meinem Moto G mit Tapatalk
 
Irgendwie stehe ich auf dem Schlauch...

...
Also so wie ich das sehe muss auf Teufel komm raus ein PC und C eingesetzt werden, das zeigen mir zumindest Deine bisherigen Kommentare.

.

Hallo,
ja VS2013, .NET, C# ist schon gesetzt, da kennt sich das Team aus.
Weniger mit den SPS Themen. Deshalb suche ich nach Ansätzen, wie man heutzutage richtige Automatisierung macht.
Beispiele, um ein Gespür zu bekommen.
Touchscreen, Apps(Smartphone) mit der Zeit gehen, ob man es braucht sei dahingestellt.
Grüße Thomas
 
So ... nun ein paar Code-Snippets :

Ich muss dazu sagen, dass ich das so aufgezogen habe, dass die Funktionalität in der Hauptsache aus eigenen Controls kommt. Dadurch kann das System auch von nicht-Programmierern gehandhabt werden, da so nur die Controls plaziert werden müssen und die entsprechenden Items zugewiesen werden müssen.

Der nachfolgende Code zeigt eine solche Item-Deklaration - hierbei wir nur die SPS-Adresse im Klartext (also z.B. A123.4) angegeben unn der Item-Name erstellt sich selbst.
Code:
#Region "Implementierung der Item-Funktionalität"
    Private my_VWItem_Status As New VisiWinNET.DataAccess.DigitalItem
    <Category("VisiWin"), Description("VisiWin-Pfad für die Variablen-Anbindung")>
    <DefaultValue(VisiWinPfad)>
    Public Property VW_Pfad As String
        Get
            Return my_VW_Pfad
        End Get
        Set(ByVal value As String)
            my_VW_Pfad = value
            Set_VWItem()
        End Set
    End Property
    Private my_VW_Pfad As String = VisiWinPfad
    <Category("VisiWin"), Description("Beschriftung der Anzeige")>
    Property SPS_Adresse As String
        Get
            Return my_SPS_Adresse.Adresse
        End Get
        Set(ByVal value As String)
            my_SPS_Adresse.Convert(value)
            If my_SPS_Adresse.Valid Then
                Me.Label.Text = my_SPS_Adresse.Adresse
                Set_VWItem()
                Me.Invalidate()
            End If
        End Set
    End Property
    Private my_SPS_Adresse As New SPS_Adresse_Converter
    <Category("VisiWin"), Description("Auswertung der SPS-Adresse invertieren ?")>
    <DefaultValue(False)>
    Property SPS_Adresse_invert As Boolean
        Get
            Return my_SPS_Adresse_invert
        End Get
        Set(ByVal value As Boolean)
            my_SPS_Adresse_invert = value
            Animation_Anzeige()
        End Set
    End Property
    Private my_SPS_Adresse_invert As Boolean = False
 
    Private Sub Set_VWItem()
        If my_SPS_Adresse.notValid Or my_VW_Pfad.Trim = "" Then
            my_VWItem_Status.Name = ""
        Else
            my_VWItem_Status.Name = my_VW_Pfad + "." + my_SPS_Adresse.VisiWinVar_Adr
            my_VWItem_Status.BitNumber = my_SPS_Adresse.BitNummer
        End If
    End Sub
 
    Protected Sub AttachItem()
        Dim Pfad2 As String = my_VW_Pfad + "."
        If my_SPS_Adresse.Valid AndAlso (my_VWItem_Status.Name.Trim <> my_VW_Pfad) AndAlso (my_VWItem_Status.Name.Trim <> Pfad2) Then
            AddHandler my_VWItem_Status.Change, AddressOf OnChange
            my_VWItem_Status.Attach()
        End If
    End Sub
    Protected Sub DetachItem()
        my_VWItem_Status.Detach()
        RemoveHandler my_VWItem_Status.Change, AddressOf OnChange
    End Sub
    Private Sub DisposeItem()
        DetachItem()
        my_VWItem_Status.Dispose()
    End Sub
    Protected Overridable Sub OnChange(ByVal sender As Object, ByVal e As VisiWinNET.DataAccess.DigitalChangeEventArgs)
        Dim mySender As VisiWinNET.Internals.DataAccess.ItemBase = CType(sender, VisiWinNET.Internals.DataAccess.ItemBase)
        If mySender.Name = my_VWItem_Status.Name Then
            If Trim(my_SPS_Adresse.Adresse) <> "" Then
                my_AnimationStatus = e.State
            Else
                my_AnimationStatus = CBool(e.Value)
            End If
            Animation_Anzeige()
        End If
    End Sub
#End Region

Hier wird das Item selbst deklariert und über einen Button gesetzt :
(In meinen Beispielen sind das BOOL-Items - die Handhabung von den anderen Items ist aber nicht anders)
Code:
#Region "Implementierung der Item-Funktionalität"
    Private my_VWItem_Button1 As New VisiWinNET.DataAccess.StateItem

    <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)>
     <Category("VisiWin"), Description("VisiWin Variablen-Anbindung Funktion 1")>
    Public ReadOnly Property VWItem_Button1() As VisiWinNET.DataAccess.StateItem
        Get
            Return my_VWItem_Button1
        End Get
    End Property

    Protected Sub AttachVWItems()
        my_VWItem_Button1.Attach()
    End Sub
    Protected Sub DetachVWItems()
        my_VWItem_Button1.Detach()
     End Sub
    Private Sub DisposeVWItems()
        DetachVWItems()
        my_VWItem_Button1.Dispose()
     End Sub
#End Region
#Region "Events / Steuerfunktionen"
    Private Sub Taste_1_gedrückt() Handles Button1.MouseDown
        my_Taste_1_betätigt = True
        my_VWItem_Button1.Value = True
    End Sub
    Private Sub Taste_1_losgelassen() Handles Button1.MouseUp
        my_Taste_1_betätigt = False
        my_VWItem_Button1.Value = False
    End Sub
#End Region

Hier wird ein Item synchron zugewiesen (die vorigen Zugriffe waren asynchron) :
Code:
VisiWinNET.Services.AppService.VWSet(ItemName , true)

Ich hoffe, ich konnte ein bißchen helfen ...

Gruß
Larry
 
Zurück
Oben