Jak zacząć pisać plugin do mach-a?

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
Bruum
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 9
Posty: 20
Rejestracja: 24 lut 2008, 00:06
Lokalizacja: Wschód

Jak zacząć pisać plugin do mach-a?

#1

Post napisał: Bruum » 07 lis 2011, 19:07

Witam! Potrzebuję zintegrować aplikację w c++ z machem. Najlepiej chyba będzie naskrobać plugina. Jak zacząć? Sciągnąłem sdk i dla przykładu zaglądam do folderu "blank plugin". Jest tam plik solucji, ale pod vs2003. I tu pierwsze pytanie-czy można go sobie przekonwertować do "formatu" vs2010 np, czy też trzeba koniecznie szukać i instalować vs2003 bo nie dogada się moja produkcja z Machem?



Tagi:


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 9
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#2

Post napisał: jarekk » 07 lis 2011, 19:13

Obejrz sobie mój plugin:

http://www.machsupport.com/forum/index. ... 698.0.html

Poczytaj moją dokumentację o narzędziach - generalnie przydaje się wizzard do pluginów Macha'a, Visual Express 2010 i Microsoft SDK ( do ATL'a). Działa nawet .NET


Autor tematu
Bruum
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 9
Posty: 20
Rejestracja: 24 lut 2008, 00:06
Lokalizacja: Wschód

#3

Post napisał: Bruum » 07 lis 2011, 19:40

Dzięki za szybką odpowiedź!
Nie masz Kolego nic po naszemu?
Puściłem konwersję na vc2010 i spróbowałem blank plugin skompilować. Wyrzuciło błąd braku headera afxwin.h, który jest opisany jako część MFC. Czy przypadkiem właśnie mfc nie brakuje w vs express? Jak to przeskoczyć?

p.s. to są właśnie uroki startu z samego dołu :oops:

[ Dodano: 2011-11-08, 08:25 ]
Ok. sprawa mfc ogarnięta ale nie z sdk, bo tam jakoś mfc nie znalazłem, ale z wdk. Jeszcze zgłasza błędy od braku definicji typów związanych z OLE. Gdzie tego szukać?


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 9
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#4

Post napisał: jarekk » 08 lis 2011, 09:37

Weź wizzarda (działa w VC 2010 express) - powininen stworzyć "blank plugin" na czysto
http://www.j1sys.com/machpluginwizard

Te z SDK są niestety pokraczne :-( i mają problemy z includami których te z wizzarda nie mają. Poza tym wtedy też możesz używać NETa, co się przydaje do np. okienek (nie potrzebujesz wtedy MFC ). Zainstaluj też WDK ( dodaje wsparcie do ATL'a którego w wersji VC Express nie masz)


Autor tematu
Bruum
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 9
Posty: 20
Rejestracja: 24 lut 2008, 00:06
Lokalizacja: Wschód

#5

Post napisał: Bruum » 12 lis 2011, 18:02

Witam i dziękuję! Dzięki wizzardowi pusty plugin się skompilował. I z nowu problem podstawowy-jak logicznie funkcje "moje" mają się komunikować z kontrolkami-przyciskami, lampkami i bitami odpowiadającymi np. krańcówkom w machu? Plugin ma komunikować macha z resztą maszyny-są tam przyciski, czujniki zbliżeniowe, elementy wykonawcze. Tym zarządza "soft plc", którego początek mam już działający. Plugin ma łączyć ten soft plc z machem. Dla przykłądu, jak na maszynie zostanie wciśnięty guzik np. posuw szybki x+ to mój soft plc odwzoruje to w odpowiednim bicie i prześle do macha a mach uruchomi odpowieni napęd. Mój "soft plc" co 20ms komunikuje się z kartami we/wy maszyny, odczytując stany wejść i odświeżając wyjścia. W sumie nie jest rozbudowany, napisany jest w natywnym c/c++. Musi działać z wysokim priorytetem, tak by żadne odświeżanie ekranu ani inne windowsowe zagrywki nie zakłócały odświeżania kart we/wy. Jak by szanowni Koledzy radzili-czy upchać mojego "soft plc" do plugina, czy tylko niech plugin robi komunikację z moim "soft plc" jako z osobnym procesem? Czy plugin może funkcjonować jako osobny proces, wątek czy cóś z wyższym priorytetem niż sam mach?


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 9
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#6

Post napisał: jarekk » 13 lis 2011, 09:43

Zapomnij o upychaniu tego do Windows - co się tylko da ma robić soft w maszynie. Mach ma służyć jako wyświetlacz i zadajnik trajektorii.


Autor tematu
Bruum
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 9
Posty: 20
Rejestracja: 24 lut 2008, 00:06
Lokalizacja: Wschód

#7

Post napisał: Bruum » 13 lis 2011, 10:25

jarekk pisze:Mach ma służyć jako wyświetlacz i zadajnik trajektorii
No właśnie tak! Potrzebuję go skomunikować z maszyną, a interfejs to ten soft plc. Plugin ma więc komunikować się z zewnętrzną aplikacją poprzez odczyt stanów 0-1 włącz/wyłącz wystawianych dla macha przez aplikację oraz wysyłanie komend włącz/wyłącz z macha do aplikacji. Mogą to być pola bitowe, struktury, tablice. Jaką technikę komunikacji międzyprocesowej obsłuży dobrze "machowski" plugin, jaką zacząć rozgryzać?

[ Dodano: 2011-11-13, 10:31 ]
jarekk pisze:Zapomnij o upychaniu tego do Windows
Rozumiem co masz na myśli-że będzie pod winem się krzaczyć, że będą "nazapowiedziane" przerwy, opóźnienia. Unikam tych atrakcji pisząc w czystym c/c++ aplikację niepowiązaną z żadnym oknem. Jeśli zrobimy aplikację "na formie" to takie siupy się dzieją, ale już konsola inaczej się zachowuje-długo i namiętnie to testowałem. Następnym krokiem będzie aplikacja bez zadnego okna, za to z wysokim priorytetem procesu.


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 9
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#8

Post napisał: jarekk » 13 lis 2011, 19:16

Mach generalnie woła callbacka plugina - chyba co 25ms. Ja zawsze miałem swój oddzielny wątek który dostawał polecenia do FIFO które wysyłałoje po UDP ( ethernet)do kontrolera.


Autor tematu
Bruum
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 9
Posty: 20
Rejestracja: 24 lut 2008, 00:06
Lokalizacja: Wschód

#9

Post napisał: Bruum » 13 lis 2011, 20:23

jarekk pisze:Mach generalnie woła callbacka plugina
I tego na razie nie ogarniam-jakby tak jak dla chłopa-gdzie szukać poleceń z macha i gdzie wstawiać mu odpowiedzi-bity, stany? Przynajmniej jeden komplet-resztę dorobię może sam.


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 9
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#10

Post napisał: jarekk » 13 lis 2011, 20:41

Na forum macha znajdziesz mój "virtual plugin". Obejrz go sobie, to da ci pojęcie o minimalnym zestawie poleceń które musisz obslugiwać. Potem zobacza mój już "prawdziwy" plugin - ma więcej cach (min. obsluguije I/O).

Niestety innej dokumentacji nie ma - wszystko to był "reverse engineering".

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”