Logiikkaohjelmointi

  • Keskustelun aloittaja Keskustelun aloittaja Daze87
  • Aloitettu Aloitettu
Mitähän muuten vakuutusyhtiö tykkää tuollaisesta
Ei varmasti tykkää. Suomessa tuollaisissa tilaaja kääntyy varmaan aina urakoitsijan puoleen jos jotain sattuu ja vähänkin isommissa mökeissä vaaditaan aika isot vastuuvakuutukset. Tuo oli menossa Suomen rajojen ulkopuolelle jollekin putki- ja sähköurakoitsijalle, joten ei mitään käryä mikä käytäntö.
 
Oliko täällä porukkaa, jolla Siemens-ohjelmointi selkäytimessä?

Näyttää olevan tapana tehdä function blockit ST:llä ja sitten kuitenkin pääohjelma niitä kutsumaan FBD:nä. Onko heittää vinkkejä, millaisilla komennoilla ST-puolella voisi konffata tuloja ja lähtöjä sekä ohjelmallisia objekteja?

Nyt näyttää ohjelmointioppaankin mukaan siltä, ettei funktioblokista tosiaan saa oikein muuten mitään ulos kuin yhdistelemällä FBD-puolella luotaviin objekteihin. Rohkenen epäillä, että se on jotenkin tehtävissä mutta eivät vaan halua sitä tapaa esitellä.

Ps. myös modbus-ohjelmointi tökkii tehdä jollain visualisoiduilla blokeilla, joissa ei ole mitään kanavia kirjoitettavalle tai luettavalle muuttujalle, vaan ilmeisesti ne muuttujat tehdään FBD-puolella ja niihin sitten vedellään viivoja jostain "tekstikentästä", johon kirjoitetaan function blockin muuttuja mitä luetaan/kirjoitetaan sinne modbus slave laitteelle.
 
Oliko täällä porukkaa, jolla Siemens-ohjelmointi selkäytimessä?

Näyttää olevan tapana tehdä function blockit ST:llä ja sitten kuitenkin pääohjelma niitä kutsumaan FBD:nä. Onko heittää vinkkejä, millaisilla komennoilla ST-puolella voisi konffata tuloja ja lähtöjä sekä ohjelmallisia objekteja?

Nyt näyttää ohjelmointioppaankin mukaan siltä, ettei funktioblokista tosiaan saa oikein muuten mitään ulos kuin yhdistelemällä FBD-puolella luotaviin objekteihin. Rohkenen epäillä, että se on jotenkin tehtävissä mutta eivät vaan halua sitä tapaa esitellä.

Ps. myös modbus-ohjelmointi tökkii tehdä jollain visualisoiduilla blokeilla, joissa ei ole mitään kanavia kirjoitettavalle tai luettavalle muuttujalle, vaan ilmeisesti ne muuttujat tehdään FBD-puolella ja niihin sitten vedellään viivoja jostain "tekstikentästä", johon kirjoitetaan function blockin muuttuja mitä luetaan/kirjoitetaan sinne modbus slave laitteelle.
Ei ole vastausta mutta hauska lukea että 20v sitten olevat Simatic ongelmat on edelleen samoja :rofl:
 
Ei ole vastausta mutta hauska lukea että 20v sitten olevat Simatic ongelmat on edelleen samoja :rofl:
Älä helvetti onko noin!:D Mun aiempi Siemens-kokemus rajoittuu pieneen määrään koulussa simulointia, nyt näiden vehkeillä pitää ekaa kertaa tehdä töitä. Vielä edellisessä työpaikassa multa kyseltiin jatkuvasti miksei toisella järjestelmällä voi koodata fbd:nä "niin kuin Siemensiä"...
 
Älä helvetti onko noin!:D Mun aiempi Siemens-kokemus rajoittuu pieneen määrään koulussa simulointia, nyt näiden vehkeillä pitää ekaa kertaa tehdä töitä. Vielä edellisessä työpaikassa multa kyseltiin jatkuvasti miksei toisella järjestelmällä voi koodata fbd:nä "niin kuin Siemensiä"...
Beckhoffilta kalleinta ja se rullahihna pyörii nätisti sen jälkeen :happy:
 
Oliko täällä porukkaa, jolla Siemens-ohjelmointi selkäytimessä?

Näyttää olevan tapana tehdä function blockit ST:llä ja sitten kuitenkin pääohjelma niitä kutsumaan FBD:nä. Onko heittää vinkkejä, millaisilla komennoilla ST-puolella voisi konffata tuloja ja lähtöjä sekä ohjelmallisia objekteja?

Nyt näyttää ohjelmointioppaankin mukaan siltä, ettei funktioblokista tosiaan saa oikein muuten mitään ulos kuin yhdistelemällä FBD-puolella luotaviin objekteihin. Rohkenen epäillä, että se on jotenkin tehtävissä mutta eivät vaan halua sitä tapaa esitellä.

Ps. myös modbus-ohjelmointi tökkii tehdä jollain visualisoiduilla blokeilla, joissa ei ole mitään kanavia kirjoitettavalle tai luettavalle muuttujalle, vaan ilmeisesti ne muuttujat tehdään FBD-puolella ja niihin sitten vedellään viivoja jostain "tekstikentästä", johon kirjoitetaan function blockin muuttuja mitä luetaan/kirjoitetaan sinne modbus slave laitteelle.
Mitä tässä kontekstissa tarkoittaa tulojen/lähtöjen ja ohjelmallisten objektien konffaus?
 
Beckhoffilta kalleinta ja se rullahihna pyörii nätisti sen jälkeen :happy:
Tämä on sellainen työnantajaorganisaation päätös, etten voi vaikuttaa. Nyt on sitten ilmeisesti aika opetella käyttämään tätä.
Mitä tässä kontekstissa tarkoittaa tulojen/lähtöjen ja ohjelmallisten objektien konffaus?
Esim. sitä, että funktioblokin loogisesti nimetty input kirjoitetaan yhteen modbus serverin rekisteriin ja toisen modbus-rekisterin arvo luetaan ja kirjoitetaan funktioblokin loogisesti nimettyyn outputtiin.

Nämä blokin inputit ja outputit ovat ulkoisella modbus clientilla ja HMI:llä luettavia ja käsin kirjoitettavia arvoja. Tällaisille en löytänyt kirjastoista funktioita millä sen voisi tehdä parilla rivillä simppelisti.

Ilmeisesti Siemensin tapa on noutaa modbus serverin/slaven rekisteriarvot matriisiin ja kutsua siitä FBD-puolella. FBD-ohjelmoinnissa tarvitaan heidän kirjastoistaan:
-Yksi blokki säätimen modbus client -määrityksille (portti, osoite, sarjaliikenneparametrit)
-Toinen blokki yksittäiselle modbus server -laitteelle, jonka kanssa halutaan kommunikoida esim. taajuusmuuttaja
-Kolmas blokki yksittäisille modbus serverin rekisteritietueille esim. holding-rekisteri 1 nopeusohjauksen kirjoittamiselle ja toinen vastaava blokki eri tyyppiselle rekisterille esim. coil-rekisteri 1 ohjaukselle on/off, tai jos seuraava holding-rekisteri ei ole peräkkäinen vaan esim. 157 niin sekin tarvitsee omana tietueenaan oman blokkinsa
-Neljäs blokki input-objektille esim. nopeusohje HMI:ltä tai ulkopuolelta, jolla määritellään nopeusohjeen mittayksikkö, raka-arvot jne parametroidaan se
-Viides blokki nopeusohjeen liittämiseksi rajapintaan HMI:tä ja ulkoista järjestelmää varten - tästä blokista saadaan nopeusohjeen arvo, joka voidaan kytkeä sinne funktioblokkiin
-Sitten tehdään samat stepit tämän server-laitteen muille rekistereille sekä kaikille muille modbus server -laitteille ja niiden rekistereille

Tässä vaiheessa tuntuu erittäin huonolta ajankäytön priorisoinnilta, kun on tottunut operoimaan täysin ST-kielellä. ST-pohjaisessa järjestelmässä tämän voisi hoitaa pisimmillään näin:
-Yksi funktioblokki, joka lukee inputit ja kirjoittaa ne haluttuihin rekistereihin ja lukee halutut rekisterit ja kirjoittaa ne outputteihin
-Yksi kutsuohjelma, jossa yhdistetään funktioblokin tulot ja lähdöt tietokantaan

..ja lyhyimmillään näin:
-Yksi funktioblokki, joka lukee ja kirjoittaa sekä tietokantaa että modbus rekistereitä server -laitteelle

TOKI siinä ST-pohjaisessa järjestelmässä voi joutua vielä määrittämään myös ne modbus server tai -client-määritykset jollain muulla tapaa kuin ST:nä. Tuo kommunikaatio modbus-porttien ja tietokannan välillä on kuitenkin ihmeen mutkikkaaksi tehty prosessi.

Pahoittelut pitkästä viestistä, koin edellisen viestini vähän epäselväksi.

Sitten vielä tullaan siihen ihanuuteen, kun vaikkapa globaalimuuttujia muutetaan tai poistetaan ja generoidut FBD-blokit eivät tätä tajua, niin niitä hienoja laatikoita on kuitenkin mentävä ST-tekstieditorilla sitten mentävä korjaamaan, että koko ohjelma edes suostuu kääntymään.
 

Statistiikka

Viestiketjuista
303 902
Viestejä
5 150 418
Jäsenet
82 420
Uusin jäsen
tiikoo

Hinta.fi

Back
Ylös Bottom