Strana 1 z 2

PLC programovanie

Napísané: 06 Mar 2011, 15:41
od používateľa mario88
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.

Napísané: 06 Mar 2011, 15:55
od používateľa anonym4
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...

Napísané: 06 Mar 2011, 17:13
od používateľa mario88
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 :)

Napísané: 07 Mar 2011, 10:28
od používateľa datam
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.

Napísané: 07 Mar 2011, 19:41
od používateľa mario88
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

Napísané: 07 Mar 2011, 19:52
od používateľa pocitujlasku
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.

Napísané: 07 Mar 2011, 19:55
od používateľa anonym4
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?

Napísané: 08 Mar 2011, 16:01
od používateľa mario88
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)

Napísané: 08 Mar 2011, 16:08
od používateľa anonym4
unsigned nemoze nadobudat zaporne hodnoty...(pozri sa na cisla/hodnoty ktore moze nadobudat,teda rozsah...)

Napísané: 08 Mar 2011, 19:07
od používateľa datam
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:

Napísané: 08 Mar 2011, 20:00
od používateľa mario88
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

Re: PLC programovanie

Napísané: 07 Jan 2012, 17:34
od používateľa karol66542
Mozte mi prosim poradit niekto nieco naucne o PLC allen bradley nejaky simulator pripadne manual



Dakujem

Re: PLC programovanie

Napísané: 23 Feb 2012, 09:53
od používateľa Keyman
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.

Re:

Napísané: 04 Mar 2012, 18:58
od používateľa datam
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 :)

Re: PLC programovanie

Napísané: 01 Máj 2012, 07:13
od používateľa sramo3
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).

Re: PLC programovanie

Napísané: 04 Máj 2012, 11:42
od používateľa datam
Pri dnešnom rozsahu merkrov to neriešim. Kludne použijem aj jeden bit v wordu aby som niečo preniesol :D

Re: PLC programovanie

Napísané: 11 Máj 2012, 23:13
od používateľa sonikmartin
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

Re: PLC programovanie

Napísané: 22 Máj 2012, 16:21
od používateľa datam
AB nerobím ale asi to bude chodiť cez symboliku.

Re: PLC programovanie

Napísané: 05 Júl 2012, 12:58
od používateľa lepirk
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?

Re: PLC programovanie

Napísané: 05 Júl 2012, 14:29
od používateľa sonikmartin
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.