Lesen/Schreiben eines Registers

Alle Kamera-Parameter die über den Konfigurationsassistanten im Config Mode gelesen bzw. geschrieben werden können, können auch aus der SPS über die Funktionsbausteine FB_VN_ReadRegister_UDINT und FB_VN_ReadRegister_REAL gelesen bzw. über FB_VN_WriteRegister_UDINT und FB_VN_WriteRegister_REAL geschrieben werden. Welcher Baustein benötigt wird, hängt vom Datentyp des Parameters ab und kann in der Property-Auflistung am Register Type abgelesen werden. In diesem Beispiel wird die Belichtungszeit geschrieben und gelesen, wobei es sich um eine Ganzzahl handelt.

fbReadValue    :    FB_VN_ReadRegister_UDINT;
fbWriteValue   :    FB_VN_WriteRegister_UDINT;

Beide Bausteine benötigen die Adresse des Parameters und eine Angabe zur Byte-Reihenfolge (Endianness). Der Write-Baustein benötigt zusätzlich noch den Parameterwert, der an die Kamera geschrieben werden soll. Da der unter Value angezeigte oder eingegebene Wert nicht direkt mit dem übereinstimmen muss wie ihn die Kamera intern verarbeitet, z. B. bei Enums oder anderen Byte-Reihenfolgen, kann dieser unter dem Register Value ausgelesen werden.

Diese Informationen können aus dem Konfigurationsassistenten ausgelesen werden:

Lesen/Schreiben eines Registers 1:

Hinweis

Kameraspezifische Parameter

Die hier abgebildeten Parameternamen, Properties und Werte sind Hersteller- bzw. Kamera- und Firmware-spezifisch und können daher abweichen.

Variablen

bTriggerReadValue  :   BOOL;
nReadValue         :   UDINT;
fbReadValue        :   FB_VN_ReadRegister_UDINT;
nReturnCodeRead    :   UDINT;

bTriggerWriteValue :   BOOL;
nWriteValue        :   UDINT := 5000;
fbWriteValue       :   FB_VN_WriteRegister_UDINT;
nReturnCodeWrite   :   UDINT;

Code

fbReadValue(
    nAddress    :=   16#20004BFC, // Check the Address of the Camera Parameter
    nEndian     :=   1,           // 0 = Big, 1 = Little
    bRead       :=   bTriggerReadValue,
    nTimeout    :=   T#5S,
    nValue      =>   nReadValue);

fbWriteValue(
    nAddress    :=   16#20004BFC, // Check the Address of the Camera Parameter
    nValue      :=   nWriteValue, // Check the right Input Format
    nEndian     :=   1,           // 0 = Big, 1 = Little
    bWrite      :=   bTriggerWriteValue,
    nTimeout    :=   T#5S);
Lesen/Schreiben eines Registers 2:

Bedingungen zum Lesen und Schreiben von Parametern

Parameter können generell nur bei geöffneter Kameraverbindung (ETcVnCameraState >= TCVN_CS_OPENED) gelesen oder geschrieben werden. Die genauen Bedingungen entnehmen Sie der entsprechenden Herstellerdokumentation der Kamera.

Beide Bausteine müssen mit dem Image Provider der Kamera initialisiert werden:

Lesen/Schreiben eines Registers 3:
Verknüpfung von Funktionsblöcken mit einer Kamera-Instanz