PLC programovanie

Problematika ohladne regulácií (PI, PID), ovládania pohonov, odmeriavaní veličín, automatizácie PLC

Moderátori: Drakoush, Moderátori

mario88
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 24 Okt 2010, 00:00
Bydlisko: Bratislava
Vek: 35

PLC programovanie

Príspevok od používateľa mario88 » 06 Mar 2011, 15:41

Caute chalani trosku som zacal sa hrat s plc tvorit jednoduche programy ale nie su mi jasne niektore pojmy. Studujem manualy ale som s toho jelen. Najprv som zacal uplne jednoduchymi vecami nejake vstupy mi spinaju vystupy blokuju sa atd (boolova algebra) to mi je jasne. Ale nerozumiem pojmu byte alebo word. Napr v manualoch sa pise byte je osem bitov,ale neviem ako taky byte mozem prakticky vyuzit v plc.
Dalej skusal som tzv pomocne pamatove vystupy oznacovane v programe ako Mx.x to je mi tiez jasne ale nerozumiem co znamena ked je oznaceny ako MB alebo, MW
Za vsetky odpovede budem velmi vdacny.
0

anonym4

Príspevok od používateľa anonym4 » 06 Mar 2011, 15:55

Zdravim,na zaciatok je dobre uviest ake PLC od akej firmy programujes...kazde je niecim odlisne,a kazde ma svoj vlastny program...

ale typujem to na nieco od Siemensu...

mario88
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 24 Okt 2010, 00:00
Bydlisko: Bratislava
Vek: 35

Príspevok od používateľa mario88 » 06 Mar 2011, 17:13

Je to PS4 od firmy klockner moller ale taktiez skusam aj na S7-200. Samozrejme prostredie a prikazy su ine ale v principe je to to iste. Preto som neuvadzal konkretny typ lebo predpokladam ze bit, byte, word sa pouziva vo vsetkych typoch plc.
Skusal som vkladat aj rozne moduly napr. timery, countre, atd. Vsetko pekne fungovalo preto nerozumiem tomu bytu, wordu resp. doubleword. Kde sa to vyuziva v praxi. Taky Bit mi je jasny 0 a 1. Tam neni co riesit :)
0

Používateľov profilový obrázok
datam
Power user
Power user
Príspevky: 2360
Dátum registrácie: 24 Apr 2008, 00:00
Bydlisko: SVK
Vek: 41

Príspevok od používateľa datam » 07 Mar 2011, 10:28

Presne tak tieto základné typy premnných sú skoro všade rovnaké. Všetko je to iba o rozsahoch.

bite čiže jeden bit je schopný uchovať iba dva logiské stavy a to znamená 1 alebo 0. Napríklad pre ovládanie výstupu a podobne.

byte čiže 8 bitov už môže uchovať 256 stavov. Tu už je možnosť použitia pre uloženie napríklad čísla v rozsahu 0-255.

Potom sú INT, DINT, WORD, REAL, ... ale všetko je v manuáloch. Je to iba o tom čo tá kontrétna premenná umožnuje a hlavne si treba uvedomiť že navzájom je použitie rôznych druhov premenných obedzené. Napríklad v S7 môžeš násobiť iba reál a reálom a výsledok sa ukladá do reálu. Tam už je potom potrebné vykonávať konverzie ale to už je o inom. Naprv doporučujem zvládnuť túto problematiku a až potom pokračuj dalej. Ak vysipeš z rukáva premmené tak poradíme viac.
0

mario88
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 24 Okt 2010, 00:00
Bydlisko: Bratislava
Vek: 35

Príspevok od používateľa mario88 » 07 Mar 2011, 19:41

Dik za objasnenie. Este vedel by si mi napisat nejaky prakticky priklad kde mozem vyuzit byte a jeho 255 stavov?

No nic idem sa este viac zahryznut do tych manualov kym to nepochopim
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6205
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Príspevok od používateľa pocitujlasku » 07 Mar 2011, 19:52

mario, pri mcu sa to vyuziva napr. mas 8 port I/O, a chces nastavit naraz stavy na vsetkych. tak posles na cely port FF, pripadne adresovanie. Nemusis nastavovat po kazdom bite, ale cely blok. Alebo ako adresovacie. vystup je pripojeny napr. na demultiplexer.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

anonym4

Príspevok od používateľa anonym4 » 07 Mar 2011, 19:55

jednoduchsie a polopate,bite ovladas na jednom vystupe 2 stavy(LOG1,LOG0)
byte ovladas 8 vystupov naraz...hodnoty,takto mozes nastavit 255 hodnot...napr na port "A"(co je tych 8 vystupov napr. Q0.0 az po Q0.7)
poslel hodnotu 125,prislusne vystupy sa kombinaciou LOG1 a LOG0 nastavia na hodnotu 125 na celom porte "A"...chapes?

mario88
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 24 Okt 2010, 00:00
Bydlisko: Bratislava
Vek: 35

Príspevok od používateľa mario88 » 08 Mar 2011, 16:01

Caute hosi este mam otazku v manualoch som nasiel nieco take:

INT
Integer; whole number with the range of values -32 768 to +32 767
Bit: 16 Default value: 0


SINT
Short Integer; range of values -128 to +127
Bit: 8 Default value: 0


USINT
Unsigned Short Integer; range of values 0 to 255
Bit: 8 Default value: 0

UINT
Unsigned Integer; range of values 0 to 65 535
Bit: 16 Default value: 0

INT, SINT mi zacina byt jasne. Ale co znamena USINT, UINT to "U" ako UNSIGNED (nepodpisany)
0

anonym4

Príspevok od používateľa anonym4 » 08 Mar 2011, 16:08

unsigned nemoze nadobudat zaporne hodnoty...(pozri sa na cisla/hodnoty ktore moze nadobudat,teda rozsah...)

Používateľov profilový obrázok
datam
Power user
Power user
Príspevky: 2360
Dátum registrácie: 24 Apr 2008, 00:00
Bydlisko: SVK
Vek: 41

Príspevok od používateľa datam » 08 Mar 2011, 19:07

Zlý príklad.

Pri dnešnom výkone a veľkosti pamäte je to skorej bezpredmetné ale napríklad BYTE sa dá použiť na niekoľko vecí.

Ako som písal tak byte je schopný uchovať hodnotu 0-255 alebo stav 8 bitov. Ak predpokladáš že rozsah do 255 v množine kladných celých čísiel ti stačí napríklad na nejaké matematické operácie tak treba použiť byte a nie napríklad REAL.

BYTE zaberie z pamäte 8bitov
REAL zaberie 32bitov

Namiesto REAL môžeš pri tej istej pamäti použiť 4 byte. To je takzvaná optimalizácia kódu a prostriedkov teda aj využitia pamäte.

Reálne by som bajt použil napríkla pre sekvenciu ukladania niečoho do škatúľ. Ide tam 32 niečoho tak premenná BYTE úplne postačuje.

Druhá vec je napríklad že máš 16 alarmov alebo podmienok spustenia. Logiku testovania každej podmienky si urobíš pre každú zvlášť ale testovať ich môžeš rôzne. Napríklad si dajme tomu že prvá podmienka bude v M10.0, druhá v M10.1 a posledná v M11.7. Aby niečo bežalo musia byť všetky TRUE a teda splnené. Teraz keď chceš otestovať či sú všetky splnené môžeš urobiť dlhý network kde budeš cez AND každú testovať

Kód: Vybrať všetko

A M10.0
A M10.1
A M10.2
A M10.3
A M10.4
A M10.5
A M10.6
A M10.7
A M11.0
A M11.1
A M11.2
A M11.3
A M11.4
A M11.5
A M11.6
A M11.7
= niečo
alebo to testneš naraz. Pretože sa jedná o 16 bite a sú hneď po sebe tak ich môžeš adresovať ako integer MW10.

Kód: Vybrať všetko

L MW10
L -1                    (-1 = FFFF) 
==I   
= niečo
ak bude situácia taká že niektré podmienky musia byť v log.1 a niektoré v log.0 tak sa to dá riešiť takto:

0011110111110101 = 15861

Kód: Vybrať všetko

L MW10
L 15861                   
==I   
= niečo
Situácií je nespočet a treba sa rozhodnúť počas programovania. Ja hovorím že ten istý program napíše každý programátor inak ale funguje to stále rovnako. Je to ako ked milion ludi píše referát na presne defonovanú tému :wink:
0

mario88
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 24 Okt 2010, 00:00
Bydlisko: Bratislava
Vek: 35

Príspevok od používateľa mario88 » 08 Mar 2011, 20:00

Ahoj Datam super vysvetlene :)

Ale mam otazocku ci som to dobre pochopil. Vychadzam s tvojho prikladu dajme tomu ze budem mat len 8 alarmov ktore chcem naraz otestovat tak staci zadat napr L MB10? atd
0

karol66542
Okoloidúci
Okoloidúci
Príspevky: 1
Dátum registrácie: 07 Jan 2012, 17:33

Re: PLC programovanie

Príspevok od používateľa karol66542 » 07 Jan 2012, 17:34

Mozte mi prosim poradit niekto nieco naucne o PLC allen bradley nejaky simulator pripadne manual



Dakujem
0

Keyman
Okoloidúci
Okoloidúci
Príspevky: 3
Dátum registrácie: 23 Feb 2012, 09:13

Re: PLC programovanie

Príspevok od používateľa Keyman » 23 Feb 2012, 09:53

to karol66542
Ahoj,
co konkretne ta zaujima? Vela sa toho dozvies tu:

Kód: Vybrať všetko

http://ab.rockwellautomation.com/Programmable-Controllers
Simulator existuje a vola sa RS Logix Emulate 5000.
0
==== Automatizácia ====
*** Allen Bradley *** Rockwell Software ***
*** PLC-ControlLogix, GuardLogix *** Frekvenčné meniče-PowerFlex *** Vizualizácia-PanelView+ ***

=== ak viem, pomôžem ===

Používateľov profilový obrázok
datam
Power user
Power user
Príspevky: 2360
Dátum registrácie: 24 Apr 2008, 00:00
Bydlisko: SVK
Vek: 41

Re:

Príspevok od používateľa datam » 04 Mar 2012, 18:58

mario88 napísal:Ahoj Datam super vysvetlene :)

Ale mam otazocku ci som to dobre pochopil. Vychadzam s tvojho prikladu dajme tomu ze budem mat len 8 alarmov ktore chcem naraz otestovat tak staci zadat napr L MB10? atd
Terza presne neviem ale Byte nejde v S7 komparovať. je tam iba CMP I, CMP DI a tuším CMP R. Musel by si byte previesť na integer alebo priamo použiť integer a jednoducho používať budeš iba polovicu bitov v premennej. Skorej sa stretám so stavom že mám viac ako 8 alarmov :)
0

sramo3
Okoloidúci
Okoloidúci
Príspevky: 2
Dátum registrácie: 23 Mar 2012, 04:57

Re: PLC programovanie

Príspevok od používateľa sramo3 » 01 Máj 2012, 07:13

Byte si mozes vymaskovat. Je tam WORD LOGIC. Najskor nacitat,potom vymaskovat,potom porovnat. A mas vysledok.
Nacitat mozes aj byte,len pozor kam ho ukladas.
Napriklad IW0 su obidva byty IB0 (I0.0 az I0.7) a IB1(I1.0 az I1.7). Tak isto je to aj pri markroch (M) ci vystupoch (Q).
0

Používateľov profilový obrázok
datam
Power user
Power user
Príspevky: 2360
Dátum registrácie: 24 Apr 2008, 00:00
Bydlisko: SVK
Vek: 41

Re: PLC programovanie

Príspevok od používateľa datam » 04 Máj 2012, 11:42

Pri dnešnom rozsahu merkrov to neriešim. Kludne použijem aj jeden bit v wordu aby som niečo preniesol :D
0

Používateľov profilový obrázok
sonikmartin
Pokročilý člen
Pokročilý člen
Príspevky: 554
Dátum registrácie: 05 Nov 2010, 00:00
Bydlisko: Litomyšl
Vek: 36
Kontaktovať používateľa:

Re: PLC programovanie

Príspevok od používateľa sonikmartin » 11 Máj 2012, 23:13

Omouvam se, trosku mimo temu, ale muzete mi nekdo poradit jak zapisovat u Allen Bradley vstupy, vystupy a merkery? Dělam v Simatiku a jelikož mi to Bradley nesezere tak to asi bude malinko jinak. Popřípadě neměl byste někdo nějaký manuálek?

Děkuji
0

Používateľov profilový obrázok
datam
Power user
Power user
Príspevky: 2360
Dátum registrácie: 24 Apr 2008, 00:00
Bydlisko: SVK
Vek: 41

Re: PLC programovanie

Príspevok od používateľa datam » 22 Máj 2012, 16:21

AB nerobím ale asi to bude chodiť cez symboliku.
0

lepirk
Okoloidúci
Okoloidúci
Príspevky: 8
Dátum registrácie: 30 Júl 2009, 00:00
Vek: 34
Kontaktovať používateľa:

Re: PLC programovanie

Príspevok od používateľa lepirk » 05 Júl 2012, 12:58

Ahojte momentalne len studujem automatizacia ale v buducnosti by som sa chcel venovat programovaniu riadiacich procesov... chcem sa spytat ake prostredie resp. jazyk je najlepsi na programovanie tychto procesov ???? PLC , C++ C# java asembler????? chcel by som sa na jeden zamerat a zacat to preberat do vacsej hlbky ako ta naucia niekde na univerzite... Teda otazka je ktore ma najvacsie vyuzitie v praxi?
0

Používateľov profilový obrázok
sonikmartin
Pokročilý člen
Pokročilý člen
Príspevky: 554
Dátum registrácie: 05 Nov 2010, 00:00
Bydlisko: Litomyšl
Vek: 36
Kontaktovať používateľa:

Re: PLC programovanie

Príspevok od používateľa sonikmartin » 05 Júl 2012, 14:29

Zalezi v jakem oboru chces pozdeji pracovat. Pokud jako programator PLC tak zacni studovat jednotliva prostředí výrobcu, protoze co vyrobce to malinko jine prostředí. Pokud se chces zaměřit na jednoucelove stroje a jejich vyvoj vyber si jeden z jazyku pro programovani AVR nebo PIC, a pokud chces programovat grafická rozrhranní pro PC zacal bych C a jeho mutacemi a potom treba jestě Javou.
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok