• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tijd tussen actief en inactief tellen

Status
Niet open voor verdere reacties.
Het is een macro die al het werk doet en die vrij makkelijk aan te passen is. Kijk anders in module1.
Er zit 1 belangrijke functie, MyStatus, zie hieronder, in en die gaat gewoon alle waarden in je kolommen B:F vertalen in een 0 of een 1 en daarmee verder werken.
Daar kan ook nog van alles aan ingesteld worden, maar zo krijg je alvast een idee.

Aan de layout kan er ook nog gesleuteld worden.
Hij neemt gewoon de kop van de kolom van de 1e tabel om te weten over welke sensor het gaat, maar dat kan ook veranderd worden.

Code:
Function MyStatus(waarde, kolom)
   Select Case kolom
      Case 2: MyStatus = IIf(waarde > 0, 1, 0)   'X50310speed, 1=loopt, 0=stilstaand
      Case 3: MyStatus = IIf(waarde = "active", 1, 0)   'sensor "active"=1
      Case 4: MyStatus = IIf(waarde >= 135, 1, 0)   'fillerspeed groter of gelijk aan 135 = 1
      Case 5: MyStatus = -waarde                 'powder, true=1, false=0
   End Select
End Function
 

Bijlagen

  • CL3_cansup_1 (1).xlsm
    243,2 KB · Weergaven: 11
Laatst bewerkt:
Hallo,

Dus als ik het goed begrijp, als ik de data van kolom F wil toevoegen aan het draaitabel dan zou ik
een case moeten toevoegen aan :

Code:
Function MyStatus(waarde, kolom)
   Select Case kolom
      Case 2: MyStatus = IIf(waarde > 0, 1, 0)   'X50310speed, 1=loopt, 0=stilstaand
      Case 3: MyStatus = IIf(waarde = "active", 1, 0)   'sensor "active"=1
      Case 4: MyStatus = IIf(waarde >= 135, 1, 0)   'fillerspeed groter of gelijk aan 135 = 1
      Case 5: MyStatus = -waarde                 'powder, true=1, false=0
      Case 6: MyStatus = IIf(waarde >= 135, 1, 0)   'fillerspeed groter of gelijk aan 135 = 1
   End Select
End Function
 
Laatst bewerkt:
en de 6e kolom ook inschakelen
Code:
Sub Tussentijden()
   Dim arr0(1 To 7), bStatus, bUur, bEinde, NewStatus
    ...
          For k = 2 To[B][COLOR="#FF0000"][SIZE=5] 6[/SIZE][/COLOR][/B]                          'kijk naar de toestand in kolommen 2, 3 en 5
            arr0(1) = .HeaderRowRange.Cells(1, k).Value
            For i = 1 To UBound(arr)
...
 
Laatst bewerkt:
Hallo,

Ben een beetje aan het stoeien met jouw macro,
Ik heb een nieuw sheet gemaakt welke direct data uit de PLC haalt, echter kan ik hier niet direct een macro op los laten.
Daarom heb ik de data omgezet naar sheet2

Ik heb het macro aanpast met de info van de kolommen in sheet2, kan je kijken of ik iets over het hoofd zie?

mvg
 

Bijlagen

  • Speedloss Filler_Cl2.xlsm
    294,8 KB · Weergaven: 8
je realtime gegevens worden blijkbaar via een matrixformule continu ingelezen in tabblad "realtime".
Je kan van die gegevens nu een kopie maken naar history via de macro "realtime2history".

Vervolgens zijn er 2 macros die je, vooraleer je begint doorrekenen, je eerst toelaten om te kiezen tussen de huidige (=realtime) gegevens en de oude (history) gegevens, nl. Realtime_data en History_data, voor naar de echte macro, tussentijden te springen. Dus dat moet je even in gedachten houden !. Vermoedelijk zal je altijd met de realtime-gegevens willen werken. Dus straks, kan er daar een knop komen, die "Realtime_data" aanroept.

De macro "tussentijden" kijkt nu in de 1e rij van je tabel en als daar een logische waarde staat (true of false), dan is het gemakkelijk, moet er niets aangepast worden in die functie "MyStatus".
In het andere geval wordt nu gekeken of je snelheid >=135 voor de waarde 1.
Dus eigenlijk zou je zomaar er een andere sensor kunnen tussensteken en zou de boel moeten blijven draaien.

In een nieuw tabblad staat nu die draaitabel met de uren, die is nu een kwartslag gedraaid, kwestie van de leesbaarheid.



.
 

Bijlagen

  • Speedloss Filler_Cl2.xlsm
    307,8 KB · Weergaven: 10
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan