Hoe kunnen we helpen?

Print

ASCII-tekens verzenden via de seriële poort van de HMI voor een apparaatkalibratie

 

De gegevens

In dit voorbeeld zijn de gegevens als volgt:

We hebben een laser en die moeten we kalibreren via de seriële poort van de HMI in RS232/485.

  • Baudrate = 115200; databit = 8; stopbit = 1; pariteit = geen

  • Elk commando begint met een hashtag gevolgd door een opdracht. Als een module geadresseerd is, wordt het nummer van de poort doorgegeven, gescheiden door een spatie en, voor sommige commando’s, een extra waarde. Het commando wordt afgesloten met een carriage return en line feed:
    • # () ()\n

  • Voorbeeld van commando’s

Commando Poort Waarde Info Antwoord
#cal_0 1…4 Nulpunt kalibratie
#cal_g 1…4 0…65535 Kalibratiepunt met gas

Lasermodules resetten, bijv. voor laser 1 (tekens en ASCII-codes):

  • #cal_0 1
  • 35 99 97 108 95 48 32 49 13 10

Module kalibreren, bijv. voor laser 2 (tekens en ASCII-codes):

  • #cal_g 2 3000\rn
  • 35 99 97 108 95 103 32 50 32 51 48 48 48 13 10

Het HMI-project

Je kunt hier het HMI-project downloaden

Apparaten 1 tot 4 zijn de knoppen die het resetcommando naar de lasermodules sturen.

  • LB100 wordt niet gebruikt, maar is nodig om de “Bit-knop” te gebruiken
  • Op het tabblad “Geavanceerd” is te zien dat we een waarde hebben ingesteld in LW100. Het is het apparaatnummer (49=1, 50=2,…)
  • Deze knoppen roepen een script aan

De “Numerieke invoer” is om een waarde in te voeren voor de kalibratie van de module

  • LW101…104 zijn de waarden die moeten worden verzonden voor de kalibratie
  • Op het tabblad “Advanced” kun je zien dat we een waarde hebben ingesteld in LW100. Dit is het apparaatnummer (49=1, 50=2,…)
  • Deze knoppen roepen een script aan

Zie hier voor de 2 scripts

Voorbeeld van door het apparaat ontvangen gegevens voor dit commando #cal_g 1 12345