ASI Bus und analoge Sollwerte nach FU

thomas_1975

Level-1
Beiträge
240
Reaktionspunkte
34
Zuviel Werbung?
-> Hier kostenlos registrieren
Mahlzeit @ll,

könnte mir mal jemand erklären wie analoge Sollwerte an einen ASI- Slave übergeben werden ?
Es geht im Endeffekt darum, daß ich mir mal das Programm von User "Kanne" ansehen wollte ( aus rein
persönlichem Interesse ).

Habe leider keine Testhardware zur Verfügung

Auszug aus der HW Konfig
Hardware.jpg
Habe im Netz fplgende Beiträge gefunden:

https://www.auto.tuwien.ac.at/LVA/SA/doku/AnalogIF.pdf

hier kommt meine erste Frage: Die Analogwerte gehen bei ASI nicht bis 27648 sondern nur bis max. 1205 Einheiten, ist das so ?

Es geht primär um das Slaveprofil 7.1, so wie ich das verstehe, werden in jedem Zyklus 3bit zum ASI Bus geschrieben.

So weit so gut, ist ja auch kein Problem so lange es um binäre Anwendungen geht, aber
wie verdammt werden die analogen Werte übertragen ???
Vorstellen tue ich mir eigentlich, daß im ersten Zyklus die Slaveadresse gesendet wird, und in den nächsten 5 Zyklen die Sollwerte
zum entsprechenden Slave.

In der PDF wird ein Siemensbeispiel mit eingebracht ( FC10/FC12 ), welches auch in eben diesem Programm in abgewandelter Form genutzt wird,
hier mal ein Auszug:

Programm.jpg

Code:
      L     "MW 22"                   //Lade den Sollwert von OP3, Variable ist vom Typ Word/ Untergrenze zur Eingabe 25 / Obergrenze zur Eingabe 90
      L     25                           //Lade Int 25 
      -I                                  // MW22 - 25 Ergebnis landet in ACCU1
      L     W#16#7A3               //Lade Hex 7A3 == 1955 Dez
      *I                                 //multiplikation auf 16bit Basis
      SRD   5                          //Schiebe um 5 Stellen nach rechts ( dividiere ACCU1 durch 32 )
      T     "MW 24"                  //transfer nach MW24


      AUF   "Peripherie"                // [I]DB 18 für Pseudo-PEA[/I]
      L     PED  264                    // [I]Peripherie-Eingänge in Pseudo-Ein-[/I]
      T     DBD    8                    // [I]gänge DB18 schreiben
[/I]
      L     "MW 24"                     // [I]Analogwert rechtsbündig vorgeben[/I]
      SLW   3
      T     "Analogdaten".Kanal1_Slave12    // [I]Analogwert 1-kanalig für Slave 12 [/I]( DB19.DBW88 )

      CALL  "Analogausgabe"            //Hier wird der Beispiel FC genutzt
       Slave_Nummer   :=19             //Slave Adresse 19
       PEA_DB_Nr      :=18               //Puffer DB E/A Daten
       Arbeits_DB_Nr  :=19              //DB Nummer wo die Arbeitsdaten zu finden sind 
       Arbeits_DB_WAdr:=88            //DB Anfangsadresse des Wortes

      L     DB18.DBD   16               // [I]Pseudo-Ausgänge DB18 in Peripherie[/I]
      L     DBD   24
      T     PAD  264

( Originalkommentare sind kursiv )

In den ersten 5 Codezeilen geht es um eine linearisierung, wobei ich nicht durchsteige wie das ganze gedacht ist ?
Meiner Meinung nach sollte im DB18.DB24 der Sollwert für den Fu liegen, geht dann auch dieser Wertebereich nur bis 1205 Einheiten,
oder übernimmt der Baustein die Linearisierung für mich ?

Bin einfach ein bisschen neugierig, habe noch nie etwas mit ASi Bus zu gehabt.

vielen Dank für die Hilfe im vorraus gruß Thomas

P.S.: Ich weiß im Netz gibt es viel zu finden darüber, aber einfach mal ein paar Worte zur Funktionsweise des ASI Busses wären supi
 
Zurück
Oben