Uw opmerkingen

Ik had Peter al gezegd dat ik geen ervaring heb met Twincat 3. Mijn geval gaat over Twincat 2. En het was een "mapping" probleem, de link tussen mijn merkers en outputs in de PLC naar iRidium over Modbus. Over Modbus is niet erg veel info te vinden op het net ivm de mapping...


Met de tips die ik hier gekregen heb en wat trial en error is het uiteindelijk gelukt :)

Het is me ondertussen gelukt om merkers te sturen en uitgangen de visualiseren.

Merker woorden sturen gaat ook om men dimmers aan te sturen, alleen het uitgangswoord visualiseren lukt momenteel nog niet. Maar komt goed...


Bij mij was het trouwens een adresseringsfout ivm feedback van output bits, werkt nu perfect. Thanks for the help

Bedankt voor de tips, goed programma, wist niet dat die bestond


mvg


Michel

Sven,


Moest je tijd hebben, dan mag je me dat klein projectje eens sturen als je wil. Heb net de globale variabelen aangepast en werkt nog steeds niet zoals ik wil...

Als ik de links van u kan inkijken kom ik er misschien wel uit.

smeystersmichel@gmail.com


Alvast bedankt


Michel

Thanks, de array's van mijn globale variabelen heb ik van de Beckhoff website. Maar straks mijn globale variabelen eens aanpassen als ik de tijd krijg, hopelijk lukt het dan wel deftig.


Benieuwd of ik dan mijn uitgangen kan visualiseren op bit niveau. Het moet alleszins een instellings-, configuratie fout zijn denk ik.

Momenteel merk ik het volgende op:

Coil address 32768 afvragen, dan krijg ik de toestand van QX19.0 (Lamp Aanrecht)

Coil address 32769 geeft me de toestand van QX20.0 (Lamp Bureau)

Het PLC programma aanpassen zodat het uitkomt per WORD is ook mogelijk, maar niet echt de juiste manier...


Sven,


Bedankt voor je uitleg.

Ik heb nog steeds het probleem dat ik merkers op bit niveau wil aansturen en me niet lukt. bv M2.4, deze zal op zijn beurt mijn buiten verlichting aansturen in de PLC QX21.4


Ik heb een default .xml file gebruikt voor de mapping (van Beckhoff zelf):

<Configuration>
    <!-- Modbus TCP port, default = 502-->
    <Port>502</Port>
    <!-- optional IP configuration for Modbus TCP server-->
    <IpAddr/>
    <Mapping>
        <InputCoils>
            <MappingInfo>
                <!-- AdsPort: TwinCAT2 PLC1 = 801, PLC2 = 811...-->
                <AdsPort>801</AdsPort>
                <StartAddress>0</StartAddress>
                <EndAddress>32767</EndAddress>
                <!-- IndexGroup 61473 = 0xF021 -> physical plc inputs %IX -->
                <IndexGroup>61473</IndexGroup>
                <!-- Bit offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <!-- Modbus input coils -->
                <StartAddress>32768</StartAddress>
                <EndAddress>33023</EndAddress>
                <VarName>.mb_Input_Coils</VarName>
            </MappingInfo>
        </InputCoils>
        <OutputCoils>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <EndAddress>32767</EndAddress>
                <!-- IndexGroup 61489 = 0xF031 -> physical plc outputs %QX -->
                <IndexGroup>61489</IndexGroup>
                <!-- Bit offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <!-- Modbus output coils-->
                <StartAddress>32768</StartAddress>
                <EndAddress>33023</EndAddress>
                <VarName>.mb_Output_Coils</VarName>
            </MappingInfo>
        </OutputCoils>
        <InputRegisters>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <StartAddress>0</StartAddress>
                <EndAddress>32767</EndAddress>
                <!-- IndexGroup 61472 = 0xF020 -> physical plc input register %I -->
                <IndexGroup>61472</IndexGroup>
                <!-- Byte offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <!-- Modbus input registers -->
                <StartAddress>32768</StartAddress>
                <EndAddress>33023</EndAddress>
                <VarName>.mb_Input_Registers</VarName>
            </MappingInfo>
        </InputRegisters>
        <OutputRegisters>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <StartAddress>0</StartAddress>
                <EndAddress>12287</EndAddress>
                <!-- IndexGroup 61488 = 0xF030 -> physical plc output register %Q -->
                <IndexGroup>61488</IndexGroup>
                <!-- Byte offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <StartAddress>12288</StartAddress>
                <EndAddress>24575</EndAddress>
                <!-- IndexGroup 16416 = 0x4020 -> plc memory area %M -->
                <IndexGroup>16416</IndexGroup>
                <!-- Byte offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <StartAddress>24576</StartAddress>
                <EndAddress>32767</EndAddress>
                <!-- IndexGroup 16448 = 0x4040 -> plc data area -->
                <IndexGroup>16448</IndexGroup>
                <!-- Byte offset-->
                <IndexOffset>0</IndexOffset>
            </MappingInfo>
            <MappingInfo>
                <AdsPort>801</AdsPort>
                <!-- Modbus output registers -->
                <StartAddress>32768</StartAddress>
                <EndAddress>33023</EndAddress>
                <VarName>.mb_Output_Registers</VarName>
            </MappingInfo>
        </OutputRegisters>
    </Mapping>
</Configuration>

In mijn globale variabelen heb ik het volgende aangemaakt:

Om nu vervolgens merkers aan te sturen via iRidium, bv M2.4 lukt me dit enkel door ze op "Word"-niveau aan te spreken:


Address 12289


Nummer 16 sturen om 5de bit te sturen => M2.4

Met deze instellingen lukt het me om een bit te sturen


Een bit aansturen via "Coil" in iRidium lukt me momenteel nog niet...


Een bit visualiseren lukt me enkel door het volgende:



Type Coil

address 32768 => volgens .xml file

                <!-- Modbus output coils-->
                <StartAddress>32768</StartAddress>
                <EndAddress>33023</EndAddress>



Dit werkt, maar welk address moet ik nemen om QX19.1 op te vragen?

Als ik address 32769 ingeef visualiseert er QX20.0...



Kortom, modbus runt, alleen krijg ik geen hoogte van de mapping... Indien jij daar een tooltje of tips voor hebt, dan hoor ik het graag.

Dag Peter,


Ondersteund je PLC modbus tcp? Indien ja, heb je hem actief staan?


Hier alleszins de link naar TwinCat Modbus TCP Configurator:

http://infosys.beckhoff.com/english.php?content=../content/1033/tcpipserver/html/tcpipserver_overview.htm&id=

Via deze configurator ga je een .xml file aanmaken die je mapping gaat doen.


Hier ook een link naar een default mapping file:

http://infosys.beckhoff.com/english.php?content=../content/1033/tcpipserver/html/tcpipserver_overview.htm&id=


Connectie van je PLC checken kan makkelijk als je bijgevoegd youtube filmpje volgt:

Succes


Michel

Bedankt voor je reactie Jurgen. Ik denk dat er misschien wat mis is met mijn mapping, als ik straks tijd heb kijk ik het in.


Michel

Hier nog wat screenshots van Twincat System Manager:


Overzicht:

Eerste input kaart: Term 2


Eerste output kaart: Term 6


Eerste dimmer kaart: Term 11


Laat maar weten als ik nog info moet geven


Michel