na początku jest ramka od tcp/ip a pózniej na końcu leci ramka typowo w modbus rtu. Czyli kolejny producent poszedł na skróty :( Orientuje się ktoś w jaki sposób można przerobić bibliotekę libmodbus tak żeby wspierała obsługę modbusa rtu poprzez ethernet Oprzyj się na "kontekście" dla Modbus TCP. Dodaj _MODBUS_BACKEND_TYPE_RTU_OVER_TCP w "modbus_bakend_type_t"...
a jednocześnie urządzenie jest modbus serverem Serwerem czy slavem ? Jak pisze na stronie z mojego linku MGate: Wspiera do 16 master'ów TCP z kolejką do 32 żądań dla każdego master'a. Jeśli chcesz mieć samodzielne urządzenie odpytujące slave-y to kiedyś testowałem iMod z Techase , było niestabilne i dałem sobie spokój. Być może zostało poprawione....
Po co Ci VPN do sczytywania danych, coś koledzy kręcą VPN służy do łącznia tunelowego 2 kompów. Jeżeli połączysz się przez VPN to musisz pingować ręcznie każdy adres, a jest to uciążliwe. Twoje rozwiązanie to zwykły router przemysłowy, Ja akurat odczytuje zmienne po Modbusie TCP/IP w routerze stawia się bramkę SMS daje się grupę do wysyłania SMS lub...
Jak napisać Makro Aby zmienna z adresu Modbus 192.168.1.105 4x86 była zapisana do LW0
Musisz podać swoje nazwy zmiennych. Zmienne dostają nazwę z id mikronwertera.
Witam! Mam za zadanie stworzyć symulację automatyzacji magazynu w C#. Polegać to ma na tym, iż stany czujników odczytywane są z aplikacji i wystawiane na modbus oraz dodatkowo za pomocą wartości z coli-ów można uruchamiać elementy sterujące (np. taśmociąg) Wykonałem całą aplikację, a jej wynik przedstawia obrazek niżej Wykorzytałem 2x Virtualny COM...
Witam. Mam na hali około 20 maszyn. Prawie w każdej z nich jest sterownik z Modbusem. Chciałbym teraz z każdej z nich zbierać dane. Około 3-4 zmiennych. Szukam jakiegoś niezbyt drogiego rozwiązania. Coś w stylu że do maszyn montuje jakiś nadajnik który odczytuje po Modbusie rejestry i bezprzewodowo przesyła je do głównego odbiornika, umieszczonego gdzieś...
Niestety muszę zgodzić się z kolegą "jestam", bo wiem, że również zna się na rzeczy, słuchaj, jest przed Tobą mega wyzwanie z każdej możliwej strony widzę, od strony programowania polecam książkę K.N Kinga "język C, co nowego w standardzie c99". Tam jest bardzo ładnie wytłumaczone co to są struktury, jak działają, jak wykorzystuje się wskaźniki do funkcji,...
Mam problem z połączeniem jak w temacie, moduł ESP2266 ma być jednocześnie modbus master i przesyłać dane do serwisu cayenne. Problem w tym, że modbus działa, tzn pobiera dane, zapisuje je do zmiennej i wyświetla na zewnętrznym wyświetlaczu, ale tylko dotąd, dokąd nie dodam obsługi cayenne. Jak tylko w programie flprog dokładam bloki cayenne, esp przestaje...
Potrzebuję działający przykład programu Modbus slave napisany w BascomAVR współpracujący z DS18B20. Są przykłady dla Arduino, lecz to C, muszę mieć koniecznie w Bascomie. Zmierzona temperatura jest przechowywana (już po przeliczeniu) w zmiennych Temperatura_x. Procesor ma ją wysłać poprzez MAX485 na magistralę Modbus RTU. Zmienna Temperatura_x jest...
Tak mniej więcej wyglądał mój program testowy. Nie jestem pewien czy nie ma w nim teraz błędów bo wycinałem z niego obsługę panelu HMI. Nie mam teraz czasu żeby go przetestować. Używa dwóch portów szeregowych więc przydatne jest arduino większe niż UNO / pro mini. Ja używałem Mega 2560. bool cobrareceived=false; const byte nrsterownika=5; unsigned long...
Witam. Odczytuję programem Scilab dane ze sterownika PLC po protokole Modbus. Liczby zmiennoprzecinkowe są więc przedstawione w postaci dwóch rejestrów (dwóch zmiennych int: pierwsza na starszych bitach, druga na młodszych). Potrzebuje przekonwertować takie dwie zmienne int do jednej zmiennej float. Generalnie rzecz biorąc, z tego co wyczytałem w internecie,...
Witam. Mam problem z protokołem MODBUS RTU na ATMega644, który błędnie interpretuje mi ramki. Kod w BASCOM wygląda następująco: a właściwie nie komunikuje się) się z urządzeniem zewnętrznym przy pomocy MODBUS'a. Chciałbym to zrobić wykorzystując MODBUS RTU (teoretycznie zostaje mi jeszcze ASCII),a do zestawu mam podpięty jeszcze skaner nasłuchujący...
Witam, czy w przypadku instalacji fotowoltaicznych a konkretnie falowników z komunikacją opartą na RS485 (wersje 2 i 4 drutowe) z protokołem ModbusRTU istnieje jakiś zunifikowany system rejestrów z grup 4xxxxx i 3xxxxx ? Buduję koncepcję monitoringu farmy opartej o falowniki DELTA RPI M50A i niestety w dostępnych materiałach nie ma opisu formatu i zakresu...
Nadal nie rozumiem zasadności dlaczego chcesz budować PLC z modułami wyniesionymi po Modbusie. 5 przewodów po 30 żył to około 135 zmiennych binarnych. No chyba że chcesz jeszcze przesyłać analogi to wówczas można się czasami zastanawiać nad budowaniem wysp. Chociaż zwykle i tak nie jest to konieczne. Ja wyspy stosuję np. w następujących przypadkach:...
Możesz zrobić zmienną pomocniczą typu np.: UDINT i zapisać w niej bajty w żądanej kolejności przez dostęp symboliczny - zmienna.%B0, zmienna.%B1, .%B2, .%B3.
Czy komunikacja ruszyła no to właśnie nie wiem, bo nie wiem jak to sprawdzić. Korzystam z portu wbudowanego COM2 pod rs232, no i nie korzystam z tej zmiennej ModbusRtuMaster_PcCOM, tylko ModbusRtuSlave_PcCOM, bo sterownik ma być Slave'm. Załączę wykorzystywany program (ściągnięty ze strony producenta): PROGRAM Modbus VAR fbBX_COM_64: FB_BX_COM_64;...
Witam, Chciałem zrobić sobie prosty serwer Modbus TCP udostępniający kilka pomiarów . Arduino pinguje w sieci, raz da się podłączyć klientem modbusowym , po próbie odczytu rejestrów modbus przestaje działać .... Poniżej mój projekt : [syntax=c] #include <NewPing.h> #include <ArduinoModbus.h> #include <Ethernet.h> //zmienne bool _2s;...
Witam, Pomyślałem, że warto byłoby pokazać dodatkową funkcjonalność wyświetlaczy DWIN ze sterownikiem DGUS a mianowicie OS. Do demonstracji został wybrany wyświetlacz DMT80480T070_18WT. Jest to model panelowy o IP65 matrycy 7", rozdzielczości 800x480 i interfejsie RS232/485 (zamiennie). Określenie Operating System jest pewną przesadą ale producent stosuje...
Dzień dobry, Próbuję odczytywać parametry z miernika parametrów sieci Lumel ND08 za pomocą Arduino Uno (klon). Do Arduino podłączony jest konwerter RS485 bazujący na MAX485. Połączenia wyglądają następująco: Arduino / Konwerter PIN 2 -> RE oraz DE PIN 3 -> RO PIN 4 -> DI 5V -> VCC GND -> GND Z konwertera do miernika: A -> A B ->...
Dzień dobry, Czy ktoś siedzi w temacie komunikacji Arduino Modbus TCP a urządzeniami przemysłowymi typu PLC itd? Generalnie szukam biblioteki modbusowej w której będą mógł ustawić przesunięcie adresowe, żeby np przy wysyłaniu rejestru zmiennej nie trafiał pod adres 0x4000x tylko załóżmy 0x4000x + 0x3000. Np biblioteka mudbus.h ma numeracje od 0x40001...
Moduł komunikacyjny Anybus-IC Dostępne wersje dla: Profibus CANopen EtherNet/IP Modbus-TCP Profinet DeviceNet Układ Anybus-IC jest kompletnym interfejsem wybranej sieci przemysłowej. Moduł komunikacyjny firmy HMS jest rozwiązaniem prostym w użyciu, co znacznie skraca i ułatwia fazę projektowania elektroniki przemysłowej. Teraz każdy producent maszyn...
Musisz wykorzystać klase SerialPort. Aby modbus slave odesłał informacje zwrotną trzeba mu posłać zapytanie.Przed pisaniem programu najprościej jest przestować komunikacje jakimś modbus scanerem. W programie takim możesz zobaczyć jak wygląda zapytanie i jak wygląda odpowiedź. Jeśli chodzi o c# musisz na jakieś zdarzenie np. ClickButton wysyłać zapytanie...
O instrukcji AT mapującej danej jednego typu drugim oczywiście znam i z tego korzystam. Funkcjonalność "delegatu" o którą mi chodzi jest potrzebna po to żebym mógł odwoływać się do bloku danych który podpięty jest do obsługi modbus'a slave'a. Dane od swojego bloku chciałbym trzymać we wspólnym bloku danych gdzie będą przechowywane wszystkie dane dotyczące...
Jeśli zdecydujesz się na Basic, co zapewne dużo ułatwi pisanie aplikacji, prosze przykład komunikacji MODBUS RTU dla Zamel EXTA FREE, do sterowania ROP. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol...
Mam problem z komunikacją po Modbusie TCP/IP pomiędzy sterownikiem TAC Xenta 731 a panelem Astraada HMI AS43TFT1025. Panel wyrzuca błąd: Na sterowniku mam ustawioną przykładową zmienną typu holding register (16 bit unsigned, integer) o adresie 40001. Na panelu pod bloczek display number podpinam tą zmienną o adresie 40001 i niestety nie ma odczytu....
Niestety dalej nie mogę się połączyć pomiędzy ND10 a Easy. Przetestowałem zarówno rejestrator ND10 jak i kartę modbus RTU osobno, połączyłem się i przesłałem dane bez problemu zarówno do EasyE4 jak i z ND10 i tak: -Rejestrator ND10 przetestowałem symulatorem modbus RTU master na komputerze PC, poprzez konwerter rs485(ch340). Odczytałem zawartość rejestru...
Jak rozumiem, jest możliwość ustawienia zera przed pomiarem? Jest możliwość ustawienie tzw. ciężaru martwego, zerowania i tarowania. gdzie zdobyłeś tak mały wyświetlacz to jest standardowy LCD 2x8 dostępny m.in.: na Allegro. Do obsługi modbusa użyłeś gotowej biblioteki (jakiej?) czy pisałeś sam? MODBUS jest bardzo prostym protokołem, wystarczy odpowiednio...
Z odbiorem już sobie poradziłem. Pojawiły się naszeptujące pytania ze specyfikacji modbusa dowiedziałem się że ramka w trybie ASCII składa się 16 bitowych danych. W RTU natomiast z 8 bitowych. Jednak w kazdym programie do testowania po ustawieniu liczby rejestru na 4 (tak mam w programie na procesor) zamiast rejestrów 4 rejestrów przypadających na każdy...
Witam. Od tygodnia się męczę z obliczaniem CRC dla modbusa RTU. Znalazłem gotową bibliotekę na tej stronie. Zaimplementowałem ją w taki sposób: [syntax=cpp] #include "lib_crc.h" #include "lib_crc.c" [/syntax] i w programie pododawałem zmienne które one wymagają i fragment który pobiera dane na podstawie których ma liczyć crc [syntax=cpp] crc_16_modbus...
Może nie jestem douczony ale swojego czasu uruchomiliśmy z kolegą instalacje, gdzie na Lonie wisiało ponad 20 PLC Wago (Centrale + Węzeł) i inne klamoty .... i moim zdaniem jest to najgorszy protokół komunikacyjny z jakim się spotkałem. Sama sieć jest powolna, do SCADY przepychaliśmy informacje przez OPC serwer wszystkie zmienne skalowaliśmy, przepisywaliśmy.......masakra....
Odczyty działają ok. Ja bym chciał coś zapisać z mastera do sterownika (slavea) np zmienić stan bitu M0.0 .... Dodano po 7 Z bitów mogę ostawiać tylko adresy od I0.0 do I1.7 .... Natomiast jeśli chodzi o zapis to np w S7200 mam zmienną VW1 i jak zapisuje do niej po modbusie wartość 1 to mam w VW1 wartość 256 , jak to ?
Chciałbym dla potrzeb opomiarowania własnej kotłowni kupić ciepłomierz z możliwością zdalnego odczytu aktualnych parametrów pracy (moc, przepływ, temperatury) poprzez magistralę cyfrową np. modbus. Chciałbym ten ciepłomierz potraktować jako miernik i móc zmieniać np. kierunek przepływu (zasilanie/powrót), jednostki itp. I o ile można znaleźć na rynku...
Witam po raz pierwszy na forum :D Mam sterownik S7-1200 i potrzebuję czytać jego rejestry za pomocą Modbus RTU (po RS485) Podłączyłem zestaw CPU1212C+CM1241 oraz wgrałem program Modbus_slave do sterownika. Komunikacja działa - Bez problemu odczytuję I, Q, IW natomiast za nic nie mogę odczytać rejestrów MW (Holding Register). Zgłasza się w Masterze komunikat...
to ja z innej beki... jak w microkontrolerze stworzyłeś ramkę do wysłania znaku do programu ?? Trochę nie rozumiem pytania. Ramkę po prostu cyklicznie wysyłając kolejne znaki. Ja zbudowałem sobie system urządzeń o różnych funkcjach i na PC robię synoptykę do tych urządzeń. Ramkę złożyłem sobie sam nie staram się komunikować z jakimś profesjonalnym...
Proszę o pomoc w skonfigurowaniu urządzenia HMISTU665 do komunikacji poprzez MODBUS RTU z kartą enkoderową ADE4-U. Jak odczytać rejestry z karty. Funkcja odczytu to 0x03 a adresy stanu poszczególnych wartości to np 0x00, 0x02 a format danych to float. Jak należy ustawić zmienne do wprowadzenia adresów w tej postaci? Po skonfigurowaniu protokołu MODBUS...
Witam, Masz kod błędu na wyjściu z bloku a mówi o o tym że Invalid pointer for DATA_PTR or invalid Blocked_Proc_Timeout. The data area must be one of the following: - Classic DB - Array of elemental data types in a symbolic or retentive DB - M memory Pokaż blok DB_Napedy. Prawdopodobnie masz źle zadeklarowane zmienne. Pozdrawiam,
Proszę o pomoc w zaadresowaniu zmiennych w programie Astrada HMI Cfg. Zmienne powinny odczytywać dane z rejestru danych falownika Santerno Sinus M. Na 129 stronie instrukcji falownika podane są adresy rejestru. Jak przypisać te adresy zmiennym w programie Astrada i jaki ma być ich typ? Czy modbus jest dobrze skonfigurowany? Screeny w załącznikach.
Witam, Rozumiem, że wartość "spoczynkowa" to zero (chodzi mi o te zarezerwowane bity), wobec tego, jeżeli ta zmienna (integer bez znaku) będzie miała wartość: - 32 (dziesiętnie) - trigger of protection - 64 (dziesiętnie) - protection trip - 96 (dziesiętnie) - oba powyższe (jeżeli jest to w ogóle możliwe) Albo przepisać tą zmienną pod jakiś marker i...
Dzień dobry, Posiadam problem z skonfigurowaniem zdalnego połączenia PC z PLC za pomocą modułu CN-GPRS-485 w protokole ModbusRTU. Czy istnieją programy ,które w łatwy sposób umożliwiają wysyłanie ramek ModbusRTU do sterownika PLC za pomocą tego modułu w trybie pracy Network Transparent? Jeśli nie to w jaki sposób wykonać taką komunikację? Z sterownika...
Witam, Jeśli chcemy dodać zmienną typu INT do PLC do możemy dodać nowy plik typu N o numerze XXX do PLC. Coś na wzór DB w Step7 ale N oznacza że możemy mieć w tym pliku tylko zmienne INT. Jak chcemy np. timer to dodajemy plik typu T. Jeśli chcemy odczytać dane pomiędzy dwoma PLC SLC500 to adresujemy odpowiednie pliki np. N10.0. Komunikacja na wzór PUT-GET...
Nie ma możliwości wysyłania danych z Excela jeżeli masz zrobioną wizualizacje w Intouch i odbierasz dane z sterownika to wystarczy w odpowienim polu konfiguracyjnym przypisać zmienną do sterownika , kilka uwag : jeżeli z każdym z urządzeń komunikujesz się osobno to potrzebujesz program IP DATA SERVER , nie sądze że posiadasz pełną wersje Intoucha a...
Ja ustawiam miedzy modbus masterem a slave komunikację. po czym w slave inkrementuję jedną ze zmiennych. Widoczna jest również w rejestrach mastera. Komunikacja jest po modbus tcp rtu. Jak widać działa, więc raczej dane mają sens. Tylko czemu wireshark tego nie widzi, nie wiem. Podpowiesz w jaki sposób ustawia się to dekodowanie dla modbus tcp?
Witam Próbuje stworzyć połącznie modbus TCP/IP sterownika S7 1500 z innymi urządzeniami teraz są ta trzy sterowniki Schneider M340 docelowo będą to jednak falowniki(jest to próba komunikacji ). Problem / pytanie polega na tym iż używam jednego bloczka „MB_CLIENT” w którym w bloku danych „CONNECT” deklaruje wszystkie parametry...
BusAdapter to mi wygląda jedynie na konwerter, a urządzeniem jest zapewne coś innego. Możesz pokazać instrukcję? Dokładnie tak ;) główne urządzenie nadaje w protokole TTL. Instrukcja jest bardzo uboga i tak naprawdę większości trzeba się domyślać. ale w wiadomości od producenta otrzymałem informację "Zmienną 33834 realizuje Pan szereg opisanych poniżej...
Witam.Usiłuje zmusić procesorek avr do pracy pod modbusem niestety zabrakło mi wiedzy, a konkretnie wartość pojedynczej zmiennej składa się z dwóch bajtów w jaki sposób wyliczyć wartość tych dwóch bajtów. Nie chodzi mi konkretnie o kod programu a raczej o samą ideę jak się za to zabrać.
Witam! Mam pewnien problem. Mianowicie muszę wysłać ramkę MODBUS RTU do sterownika w postaci mniej wiecej takiej: (pierwsze dwa pola to kolejno adres sleva i funkcja, drugie dwa to adres pamieci w sterowniku, kolejne dwa do ilośc adresów pamieći o które pytamy, no i ostatenie dwa to suma kontrolna-bez nawiasów oczywiście;). Niestety programista ze mnie...
Witam. Konfigurował ktoś DAServer (DASMBTCP) dla protokołu Mudbus TCP do InTouch'a? Mam 3 różne sterowniki: Modicon M340 Moeller XC200 Mitsubishi Q63P i z żadnego nie mogę pobrać zmiennych. Co ciekawe zmienna $sys$status (do sprawdzania połączenia program komunikacyjny - sterownik) jest non stop true, nawet po wypięciu sterownika z sieci. Miał ktoś...
A spotkałeś się z programem z załącznika? Bardzo prosty, spełniający podstawowe wymagania. W Twoim programie mógłby się przydać odczyt/zapis zmiennych w formacie float i pojedynczych bitów (funkcja 0x01). Pozdro.
Chcesz ustawić wyjście K1 na chwilę (w dokumentacj ina 1 s) to piszesz pod adres 1H. Trochę "kombinujesz" rozkładając zadanie na ramki i zawartość rejestrów - nie po to jest driver MB1, żeby "upierdliwie" sprawdzać co siedzi w zapytaniu i odpowiedzi. Zrobiłem tak i mogę ustawiać Q1 (w PLC): Konfiguracja drivera MB1 Odpowiedź: Oczywiście w iFIX mam zmienną...
To wszystko znam, ale nie to szukam. To nie to samo co koncentrator sam pytający slavy i buforujący dane tak aby w każdej chwili były jak najświeższe dane biorąc pod uwagę, że zmiennych może być kilka tysięcy.
O ile sobie przypomianam (no a mogę sobie przypominać niezbyt dobrze ;)) to odczytywałem w/w liczniki Secomec przy użyciu KEPServerEX (Modbus TCP/IP port 502). Żeby odwołać się do konkretnego licznika w danej gałęzi identyfikowanej przez adres IP koncentratora (bo było ich więcej niż jeden na koncentratorze) trzeba podawać też modbus ID. Odczyt parametrów...
Trochę odgrzebuje ale takie połączenie nie ma prawa działać. Nporty mogą działać jako bramy Modbus RTU/TCP ale tylko i wyłącznie w trybie Real COM (producent też tego nie zaleca ale to działa). Modbus TCP,jak już napisał Rariusz , jest nieco inny od Modbus RTU. NPort w trybie Server to co dostanie na socket przerzuca jako bajty na port szeregowy. Wszystko...
Dzięki za odp. Z grubsza już działa, oczywiście okazało się, że "plusy" trzeba było podłączyć do "/D" w sterowniku, analogicznie "minusy" do "D". Pomogły testy na RS-232 gdzie był tylko TX i RX;) Druga rzecz to w XP-Builderze przy wyborze sterownika trzeba było zaznaczyć "Master" co mnie początkowo zmyliło, bo przecież to HMI w tym połączeniu ma być...
Potrzebujesz przynajmniej zmiennych takich jak: bufor[x] gdzie x to max przewidywana liczba znaków w ramce odbieranej + zapas licznik_znaków flaga_odebranej_ramki flaga_bledu .W przerwaniu od Uart czytasz odebrany znak .W zależności od wartości licznik_znaków i odebranego znaku albo rozpoczynasz ramke jak był 0 a znak był adresem, albo wstawiasz znak...
Jeśli chodzi o tą odpowiedź 0101002190 to była błędna bo zaczynałem od adresu "0". Gdy zacząłem od adresu jeden i chciałem załóżmy czytać jedną zmienną(funkcja 01) to wyszła chyba prawidłowa ramka (zdjęcie) Zrobiłem też dla 10 zmiennych od adresu 1. Jak teraz zinterpretować te dwie ramki? Czy one są prawidłowe?
Tabelka z rozpisem funkcji: Dodano po 12 Pokłamałem :) %W używa funkcji 20 i 21. Właśnie sobie zdałem sprawę, że nigdy tego obszaru nie używałem przez Modbus :), ale to już jakby nie dotyczy tego tematu. [url=]Modbus TCP objectives
Witam, Można użyć jakiegoś sterownika z Modbus Master TCP/IP i odczytywać zmienne z domofonu (trzeba doczytać co i w jaki sposób odczytujemy w dokumentacji). Wtedy przy wykonaniu konkretnej akcji na domofonie możemy zaprogramować dowolne działanie na PLC. Aby jednak powiedzieć coś więcej trzeba dokładnie się wczytać w dokumentację domofonu.
jeśli to jest deklaracja tablicy to tej samej komórce przypisujesz dwie wartości w efekcie w Pabs[0].Address: zawsze będzie 14. Wydaje mi się że to powinno wyglądać tak(nie znam tego języka): Pabs[0].Address:=13; Pabs[0].Name:='Pw1'; Pabs[1].Address:=14; Pabs[1].Name:='Pw2'; a zmienna counter powinna mieć wartość 0 gdy czytasz pierwszy czujnik i 1 gdy...
Opis konstrukcji Projekt powstał z myślą udostępnienia danych ze sterownika PLC przez internet. Wymieniony sterownik posiada port komunikacyjny RS232 oraz wykorzystuje protokół komunikacyjny Modbus RTU. Podczas wykonywania prac uznałem, iż miłym dodatkiem będzie możliwość zdalnego załączania urządzeń. Całość oparłem o uniwersalną płytkę stworzoną jakiś...
Witam, Szukam rozwiązania umożliwiające wpięcie dwóch sterowników od Chillera (sterownik Danfoss), które wykorzystują LONa. W sterownikach mam pokrętła do ustawienia adresu LON. W jaki sposób mogę przerzucić trochę zmiennych (temperatury, ciśnienia, setpointy) do mojej jednostki nadrzędnej BMS (Modbus Master). Czy są jakieś sprawdzone bramki LON ->...
Przy tym numerze błędu, właściwy problem sygnalizowany jest w zmiennej SFCERR w bazie instance. Opis tego drugiego zapewne dotyczy wewnętrznego wywołania SFC 15 "DPWR_DAT" i tam trzeba zerknąć. Czy patrzyłeś na przykład, który znajduje się razem z bibliotekami? Co do samej komunikacji polecam w pierwszej kolejności połączyć się przy użyciu komputera...
Najpierw program typu "Modbus poll", a dopiero kiedy dojdziesz ze zmiennymi do ładu można przenieść uzyskaną wiedzę do PLC. Z Modbus poll można zrobić wszystko włącznie z uruchomieniem falownika i jest to dużo efektywniejsze czasowo jeśli się dany model implementuje pierwszy raz. Nie wiem jak Schneider, w ABB uruchomienie wymaga sekwencji pięciu kroków...
Witam, Ale masz te same zmienne. Rozwiń myśl "mam dwa różne programy". Zmień nazwy zmiennych np: FB_MBConnect na fbMBConnect. Pozdrawiam,
A co zawierają poszczególne adresy to już w specyfikacji urządzenia z którym się komunikujesz musisz sprawdzić. To ja buduje to urządzenie. Z liczbami całkowitymi działa mi wszystko ok ale chciałbym na zmiennoprzecinkowe. Dzięki. Poczytałem i jak wysyłam z arduino 43 6B ED CE to Scada (Promotic) widzi te 235.929. Teraz tylko pytanie bo nie ogarniam...
nie wiem czy temat dalej aktualny ale co do CRC dla modbus w bascomie sporo pomógł mi ten plik :D .potrzebowałem do zrobienia wizualizacji dla atmegi w intouch poprzez serwer OPC ( raczej tylko dla celów poznania komunikacji -tylko dwie zmienne)ale jeśli co kolwiek pomoże odezwij się a wstawię. pozdrawiam
Udało się w końcu skomunikować z miernikiem 30-dniową wersją programu Modbus Poll. Z VEE też w końcu udało się skomunikować z miernikiem, po skorzystaniu z podpowiedzi, że ramka ma być wysyłana 8 bitowymi bajtami. Zmieniłem typ wysyłanych danych na BINARY i podtyp na BYTE i teraz po wysłaniu zapytania jest odpowiedź, którą odczytuję przez zmienną tablicową...
Tak chodziło mi QuickClient'a. Dawno tego nie używałem.Całość właściwie robisz w KEP. Deklarujesz protokół i adresy wymienianych zmiennych (I/O) i ich rodzaj rejestry/bity oraz wszystko na temat portów (prędkości parzystości i inne). Później opalasz QuickClienta i powinno nastąpić połączenie. Z tym, że SCADA też musi być uruchomiona i poprawnie skonfigurowana....
Wykorzystuje Modbus TCP/IP. Może napisze jak ja próbowałem to podłączyć. Mam 2 rodzaje I/O servera znalezione gdzieś na necie. Zwane MBNET. Początkowo chciałem wykorzystać ten od Wonderware. Skonfigurowałem go następująco : Następnie w Intouchu dodałem AccessName mbnet. I dodałem zmienną z AccessName Dodałem jakiś kwadrat którego kolor był zależny od...
Po pierwsze musisz zapoznać się z specyfikacją MODBUS RTU, aby łatwiej analizować problemy. Do analizy polecam CAS Modbus Scanner - ułatwia analizę tego protokołu. Teraz spróbuję Ci pomóc. 1. Musisz wiedzieć jaki typ zmiennej chcesz odczytać "word"(np: temperatura) czy "bool" (np: stan wyjscia) - Zakładam, że skonfigurowałeś komunikację w panelu. 2....
Witam Próbuję napisać prosty program do odczytu danych z licznika LE-03M () Stworzyłem projekt i dodałem bloczek w Fupli - Init Client RS, ustawiając parametry komunikacji: Channel: Channel 1 Serial port: Port 1 Line type: RS485 Transmission speed: 9600 bps Bits-Parity-Stop: 8-N-1 Protocol: Modbus/RTU Timeout[s]: 2.0 Repetitions: 5 Następnie dodałem...
Czy ktos sie orientuje jak dokonac importu lub exportu zmiennych pomiedzy PLC a HMI ? Probouje zrobic to tak ze zapisuje sobie wyeksportowany plik o rozszerzeniu .vxm i w Vijeo design otwieram go z panelu zmiennych i probuje go zaimportowac. Owszem zmienne sa rozpoznawane ale podkreslone na czerwono jako niezgodne z IEC (mimo ze do nazw uzywam wylacznie...
Zobacz jak wygląda ramka. Każda funkcja ma adres 16 bitowy czyli nie (1 0001 to 1 9999) ale (1 00001 to 1 65536). Ta cyfra przed adresem standardowo identyfikuje obszar (wejście, wyjście lub rejestry). Po tej wartości np. serwer OPC "wie" jaką funkcję ma użyć do obsłużenia zapytania. Czyli nadal jest to adres cyfrowy, ale uzupełniony o dodatkową informację....
Witam, potrzebuje nakierowania w szafie sterowniczej mam VersaMax Micro CPU IC200UDD040. Wstawiłem mu moduł komunikacji RS 485 IC200USB002, mam tam także regulator temperatury SRT=77 firmy simex. Chcę połączyć się poprzez komunikację RS 485 z tym regulatorem i żądać informacji o wartości wskazania temperatury. Błądzę w tym temacie. 1. Regulator Zaciski...
nasuwa mi się "dziel i rządź". Nie myśl (na pewnym etapie) o obu "zakończeniach". Najpierw jeden (np pogoda do zmiennych, to sobie potestować itd), potem drugi. Nie znam modbus, ale wydaje się mieszasz realizację serwera a pisanie do serwera (czyli client) EDIT. Że przykład jest w Pythonie, to nie dowód, że z innych języków się nie połączysz (jakie...
Dołączę się do tematu . Zabrałem się z ciekawości do podłączenia Modbus w S7-1200 ( 1214C DC/DC/DC ) z procesorem komunikacyjnym CM1241 ( 241-1CH31-0XB0 ) . No i problem :cry: . Na procesorze widać że dioda TX mruga , mogę zadawać zmienne w programie ( RUN , Częstotliwość itp. ) natomiast nie mruga dioda RX i nie odbieram nic z V1000. Ponadto jak zmostkuję...
Czyli tak Strona 62 dokumentacji parametr P2-10 w modbus wyrzucam zmienna pod adresem 020AH ? i tyle ?
Panowie, w powyższym linku zadałem pytanie odnośnie komunikacji Modbus TCP/IP. Bit M230.0 jest zmieniany co 25ms w przerwaniu cyklicznym, czyli co 50ms powinna być odbierana ramka danych z jedna zmienną, ale tak się nie dzieje niestety. Z moich obserwacji wynika, że maksymalnie mogę odczytywać 10 razy na sekundę. Czy w tym bloku jest gdzieś parametr...
Dla potomnych w Wago PFC 200 8202 nie ma pisania bezposredniego do zmiennych MX, a wbudowany w ecockpit konfigurator ma wlasny serwer modbusa. Aby pisac do zmiennej modbusowej z programu PLC trzeba skorzystac z biblioteki i np bloczka funkcyjnego simple slave tcp server. Pamietac nalezy jednak o wylaczeniu w WBM wbudowanego serwera modbus lub postawic...
Witam. Mam problem z odczytem rejestrów które są zapisane w urządzeniu w formacie FLOAT. O ile odczytanie rejestru który jest w formacie REAL nie ma problemu, to gdy odczytuje dane z FLOAT otrzymuję dziwne wartości. Mam przepływomierz z karta rozszerzeń modbus. Komunikacja działa prawidłowo i nie są zgłaszane błędy. W specyfikacji przepływ aktualny...
Można gotowcem: Intouch - ponoć najlepszy, WinCC - Siemensa, RsView232, ifix i inne. Można w VisualBasic-u, Asemblerze, C++ - trudniej. Te pierwsze mają gotowe modele graficzne, współpracują z różnymi typami transmisji i sieci - Modbus, Profibus... ale kosztują krocie. In touch np. ok.20tys. zł - zależnie od ilości zmiennych i stanowisk. - winCC lub...
Ad1. Czesciej stosowana w praktyce jest jedna para przewodów. Trzb half duplex. Ad.2 W rs482 dozwolny jest jeden nadajnik. W rs485 wiel. Ad.3 Zamiast max485 mozesz stosowac sn75176. Oba mozna zasilic 5 V. Z praktyki wiem ,ze sa problemy ze wspoldzialaniem max485 z sn75176. Trzeba sie zdecydowac na jeden z nich w calej sieci. Ad. 4 Tego nie posiadam...
jak bedzie wygladalo wywolanie tych fonkcji jesli zmienne mam w tablicy: unsigned char Mbuf[8]
Tu jest teraz dosyć szeroki wybór - SCADA w których komunikacja oparta jest o OPC lub DDE serverach ( zwykle przynajmniej jeden dostarczany jest w pakiecie co Ci zupełnie wystarcza ) są tanie i z darmowym developerem . np: Infilink z KepServer czy PlantViev z ich własnymi serverami to pieniądze za runtime rzędu 1k do 2k pln . Ilość zmiennych -> ta najmniejsza...
Witam. Mam oto taki problem. Robię sterownik wykorzystujący protokół modbus ( // definicja struktury dla sterowników PID. typedef struct { unsigned int Ts; // stała czasowa regulatora float Kp; // wzmocnienie członu proporcjonalnego float Ki; // wzmocnienie członu całkującego float Kd; // wzmocnienie członu różniczkującego int y_max; // max wartość...
Wobec tego na pewno prawdopodobnie masz problem z tą zmienną jaką inkrementujesz w przerwaniu :wink:.
:) kk.2000 .......A teraz inne pytanie: przypuśćmy, że masz 3 panele operatorskie. Czy wszystkie wg Ciebie będą masterami, bo przecież wszystkie podlegają jakiejś teorii komunikacji z człowiekiem przez HMI??? .......... Nie człowiek jest masterem tylko OP, który komunikuje się z człowiekiem a system tylko jeden zgodnie z zasadą jeden Maser i wielu slave...
W tej linijce wpisujesz ze masz do odczytu 30 bajtów a skad wiesz ze tyle zawsze będziesz mial do odczytu ????? Nie wiem ale nie wiem również jak to ustawić :) Pytanie jaki używasz kod funkcji??? 4020 fSuccess = ReadFile(hCom, &read_buffor, 30, &RS_ile, 0); //Czemu read_buffor nie jest zadeklarowany jako wskaznik??? Nie do końca rozumiem, czemu...
Przy definiowaniu zmiennej na panelu ustawiasz adres i funkcję. Adresy jak zauważyłeś masz w manualu w postaci tabeli (U mnie to jest w rozdziale 3.1.6.5.2 Juxtaposition of MODBUS/TCP and IEC 61131-3 Addresses). Jeśli chcesz wpisać jakąś wartość do %MW0 To będzie funkcja zdaje się FC16 i adres: 3000h, lub dziesiątkowo 12288. Ale sprawdź bo ja mam inny...
Witam ładujesz "to" z tablicy typ zmiennej char ? void ramka() //procedura budująca wysyłaną ramkę { int i; ramka[0]=':'; //początek ramki ramka[1]='0'; //adres urządzenia slave ramka[2]='2'; switch(funkcja) //numer funkcji { case 2: { ramka[3]='1'; ramka[4]='1'; } break;...
Czy zmienna złożona typedef struct Modbus { volatile char ErrorFrame; volatile char ErrorOrder; volatile char TimeOut; volatile char Message; volatile char SendBlank; volatile char SupervisorTimer; volatile char ErrorAddress; }FlagProtocol; volatile FlagProtocol FlagModbus; zostanie zainicjowana automatycznie (do wartości 0) ?
Serwer MODBUS z obsługą DDE + Excel pewnie zadziała ale będziesz musiał w excelu jakiś skrypt napisać, żeby dane z miernika parametrów sieci archiwizować/obrabiać. Inaczej w polach połączonych z odczytywanymi zmiennymi będziesz mieć zmieniające się wartości bieżące.
Rozumiem, że zdefiniowałeś to co potrzebne do działania programu (nadałeś adres slave, prędkości, ilość wysyłanych zmiennych [i] itd) Po naciśnięciu przycisku master przełącza stan jakiegoś wewnętrznego adresu za pomocą zbocza narastającego. Po zmianie stanu master uruchamia program write_coils przepisując tą funkcją stan z własnego adresu do adresu...
Witam ,usiłuję napisać prostą wizualizację w scadzie Asix,komunikacja jest po modbus przez port rs232 ze prostym plc,niestety nie umiem stworzyc odpowiedniej zmiennej ktora odczyta mi np rejestr 4800 ,czy ktoś miał styczność z tym programem i taka komunikacja ?
Dziękuję za odpowiedź. Tak zrobiłem i błędu konfiguracji już nie było! Jednak teraz pytanie. Jeśli zamieniłem PORTY i ten którym programowałem sterownik PLC (PORT 2 - pierwotnie było ustawiony na SNP) chcę wykorzystywać jako RTU i podłączyć do niego urządzenie SLAVE to czy programowanie sterownika i podgląd zmiennych odbywać się będzie przez PORT 1....
Z czego zadawana jest prędkość lub ilość dozowania..... Czy prędkość lub ilość dozowania wpisywana jest z panela HMI? . Kolego elpronet zadajemy tutaj ilość dozowania i tak jak sam zauwazyles jest ona podawana z panela HMI. A wiesz która zmienna w panelu jest odpowiedzialna za wpisywanie ilosci dozowania?
Problem rozwiązany! Muszę się przyznać że nie napisałem wszystkiego. Program rzeczywiście był niemal identyczny ale dodany do istniejącego już kodu. Problem polegał na tym, że kod slave-a działał w przerwaniu 3ms, mastera w 10ms natomiast zmienne które trzeba było zlinkować do hardwere-u nie wiedzieć czemu były w 100ms (tam gdzie główny program). Wielkie...
Witam, Mam taki kod: [syntax=csharp] private void timer1_Tick(object sender, EventArgs e) { port.Write(new byte[] { 0x01, 0x17, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x9B }, 0, 13); port.DataReceived += new SerialDataReceivedEventHandler(DataRecei... private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs...
Witam. Próbuję zmusić panel OMRON NB7W-TW007B do współpracy ze sterownikiem Beckhoff BC8150 i nic. Wcześniej łączyłem ten sterownik z panelem Beijera wg. opisu w załączniku i wszystko działa. Jednak w przypadku panelu OMRON nie działa nic. Może ktoś wie, jak odnieść ustawienia Beijera do Omrona? Np. w panelu Beijera mogę ustawić control block na adresie...
Dziękuję wszystkim za pomoc. Ponieważ większość programów tworzę na Siemensie w TIA zdecydowałem się na panele Siemens-a serii Basic, w przypadku bardziej wymagających aplikacji Comfort. Integracja oprogramowania do PLC i HMI w jednym środowisku (tutaj TIA portal) pozwala uniknąć popełnienia wielu błędów związanych z adresacją zmiennych. Dodatkowo znacznie...