'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.

Wiadomości - Tom01

Strony: 1 [2] 3 4
31
Tematy ogólne / Odp: Sprzedam Wago 750-841
« dnia: Marca 06, 2017, 10:59:26 am »
Na razie webvisu, ale:
1. Pracuję nad zewnętrznym interfejsem.
2. System konfiguruję tak, aby jak najmniej było trzeba nim "sterować".

32
(Pod)Systemy i Funkcje / Odp: Moduły kontroli temperatury Wago
« dnia: Marca 05, 2017, 09:59:19 pm »
I/O Check 3

33
(Pod)Systemy i Funkcje / Odp: Moduły kontroli temperatury Wago
« dnia: Marca 05, 2017, 08:53:59 pm »
Niestety, to nie jest problem z adresami. Obok mam 468 0-10V AI i odczyty na nich są ok. I/O Check jaki mam nie działa z moim kontrolerem PFC200.

34
Tematy ogólne / Odp: Sprzedam Wago 750-841
« dnia: Marca 05, 2017, 11:29:11 am »
Przykładowo I/O Check nie działa ze sterownikami PFC200, żądając dodatkowego pliku konfiguracyjnego. Mam 8202 jako podstawowy sterownik, ma swoje zalety, np jest duuuuużo szybszy, dopuszcza większe biblioteki przy komplikacji, ale też wersje 750-8202/xxx-xxx mają strasznie popieprzoną konfigurację.

35
(Pod)Systemy i Funkcje / Odp: Moduły kontroli temperatury Wago
« dnia: Marca 05, 2017, 11:26:09 am »
Napisałem, czekam na odpowiedź. Pytane na forum zadałem, gdyż może ktoś się spotkał z takim problemem.

36
Tematy ogólne / Sprzedam Wago 750-841
« dnia: Marca 03, 2017, 09:24:02 pm »
Sprzedam sterownik jak w tytule. Kupiłem nówkę, używałem około roku. Stan oczywiście idealny. W odróżnieniu od 842, 843 itd, jest to sterownik 32 bitowy, ma wizualizację, odseparowane obszary pamięci M i RETAIN. Ogólnie, jest to jeden z lepszych, najbardziej udanych PLC tego producenta. Łatwy w programowaniu, ławo dostępny soft, nawet "lewy". Nie potrzeba dziwnych plików jak w nowszych, serii 8xxx.

Przepłaciłem jak za zboże, więc chciałbym cokolwiek odzyskać, więc powiedzmy 800 zł może będzie uczciwie.

Czemu sprzedaję? Ano trafiłem za dobre pieniądze 750-880. ;)

37
(Pod)Systemy i Funkcje / Moduły kontroli temperatury Wago
« dnia: Marca 03, 2017, 09:17:05 pm »
Czy ktoś może uruchamiał pomiar temperatury na modułach Wago 750-460 i 750-461? Mam ich kilka. Zacząłem uruchamiać na nich odczyty temperatury. Mam dwa rodzaje czujników PT100, jednak wejścia modułów ciągle pokazują 0. Błąd na module się nie świeci. Czy jest jakaś procedura uruchomienia/kalibracji? Czujniki sprawne, reagują na zmianę temperatury, sprawdzone omomierzem.

38
Programowanie / Odp: Wygładzanie szybkozmiennych danych
« dnia: Marca 03, 2017, 10:43:23 am »
Gdyby ktoś chciał wykorzystywać moje rozwiązanie, załączam erratę. Zauważyłem, że filtr wygładzający RAMP_INT potrafi wyjechać poza wartość maksymalną  czujnika, czyli 32767. Aktywator HISTERESIS interpretuje wówczas wartość ujemną. Skutek jest taki, że jak słońce zaświeci w czujnik, potrafi zaktywować tryb noc. Zastosowałem dodatkowy bloczek SCALE z oscata, który ogranicza zakres dynamiki na wyjściu oraz wymieniłem aktywator z histerezą na wersję od Wago. Chodzi o format wejścia. Poprzedni przyjmował tylko zmienną typu integer i nie współpracował z wyjściem bloczka SCALE.


39
Tematy ogólne / Odp: Mostki grzebieniowe TOPJOBS 2002
« dnia: Marca 01, 2017, 02:37:15 pm »
Pamiętajcie o prądach, jakie będą musiały popłynąć przez te miniaturowe mostki, szczególnie przy długich łańcuchach. Nie bez powodu wymyślono wersję z szyną.

40
Tematy ogólne / Odp: Mostki grzebieniowe TOPJOBS 2002
« dnia: Lutego 15, 2017, 11:43:25 pm »
A mnie się wydaje, że źle to zaplanowaliście. Do mostkowania służą specjalne złączki, z wysuwanym stykiem N na wspólną szynę. W ten sposób można zrobić tyle sekcji ile jest zabezpieczeń różnicowo-prądowych i każda sekcja ma swoją szyne zerową.

41
Programowanie / Odp: Wygładzanie szybkozmiennych danych
« dnia: Lutego 15, 2017, 11:28:46 pm »
Na razie zrobiłem to tak. Pierwszy filtr z oscat odsiewa zakłócenia pikowe. Drugi z biblioteki util.lib gładko przejeżdża na nową wartość w sytuacji nagłej zmiany oświetlenia. Trzeci bloczek to włącznik dzień/noc z histerezą, też z util.lib. Działa piknie. Może się komuś przyda.




42
Programowanie / Odp: Wygładzanie szybkozmiennych danych
« dnia: Lutego 05, 2017, 04:50:10 pm »
Testowałem do tej pory oscat w trybie emulacji, jednak przy próbie załadowania do sterownika są dwa problemy. Pierwszy to komunikat o zbyt dużej ilości modułów. Można to zwiększyć w konfiguracji systemu docelowego, ale wówczas pojawia się komunikat o zbyt dużej ilości danych dla sterownika. Jakieś pomysły? Sterownik to 750-880.

43
Tematy ogólne / Odp: Szyna 0V i 24V
« dnia: Grudnia 21, 2016, 10:51:11 pm »
Ja w końcu zastosowałem mostki zerowe. Mają sporo śrubek, w każdą wchodzi po 2-3 przewody w tulejkach. Mało eleganckie ale się sprawdziło.

44
Programowanie / Odp: Wygładzanie szybkozmiennych danych
« dnia: Grudnia 16, 2016, 10:54:04 am »
A jak z dostępnością tej biblioteki? Płatna? Licencjonowana?

45
Programowanie / Odp: Wygładzanie szybkozmiennych danych
« dnia: Grudnia 15, 2016, 11:21:20 pm »
Poniżej implementacja pomysłu w języku FBD.



Ogólnie to działa, ale ma wadę. Jeden parametr D to za mało do wykrywania wielkości zmian i "kroku" zmiany jasności lamp. Aby lampy płynnie zmieniały jasność D musi być mały a jeśli jest mały to jest mniejszy niż oscylacja Y. Jeśli jest większy od oscylacji to z kolei widać skoki jasności lamp.

46
Programowanie / Wygładzanie szybkozmiennych danych
« dnia: Grudnia 15, 2016, 07:59:44 pm »
Pewnie tytuł niejasny, ale już tłumaczę.

Jest sobie czujnik analogowy 0-10V, np światła, wilgotności czy jakikolwiek. Z modułu analog input dostajemy zmienną WORD która przyjmuje prawie 16-bitową wartość, podaną dziesiętnie 0-32767. Kłopot polega na tym, że wartość "skacze". Szukam sposobu na uśrednianie zmiennej, tak aby niewielkie wahania odczytu poziomu nie wpływały na sterowanie w dalszym ciągu programu. W drugim kroku, szukam sposobu na płynną zmianę. Np zmienna zmieni się bardzo szybko z 1000 na 1400 a ja chciałbym aby wartość zmiennej płynnie "przejechała" od 1000 do 1400 w określonym czasie. Na razie rozwiązałem to tak, że podprogram odczytujący wartość wywołuję co 2 sek, więc jakieś uśrednienie jest, ale to nie do końca o to chodzi. Jakieś pomysły?

47
Programowanie / Przykład oprogamowania sceny świetlnej.
« dnia: Grudnia 06, 2016, 11:10:51 pm »
Czy ktoś byłby tak miły i pokazałby kawałek programu w FBD z wykorzystaniem scen świetlnych z Wago Building Common? Niestety w sieci przykładów brak, a jest to dość zagmatwane i pdf-y z opisami bloków nie są zbyt pomocne.

48
Tematy ogólne / [S] Sprzedam BECKHOFF EL4104 4x Analog Output 16bit 0-10V
« dnia: Listopada 03, 2016, 12:33:43 am »
Mam do sprzedania trzy moduły praktycznie nowe. Podłączone w celu sprawdzenia. Niestety z Wago nie działają, jeśli ktoś ma PLC Beckhoffa, może mieć niedrogo moduły do sterowania np przepustnicami wentylacji lub regulację jasności oświetlenia. Cena 300 zł/szt.

49
Tematy ogólne / Odp: Beckhoff vs Wago
« dnia: Października 21, 2016, 02:30:29 pm »
Wago daje swoją spersonalizowaną wersję CoDeSysa, więc jeśli to jest oryginalny CoDeSysy to targetów nie ma. Odezwij się na PW, podeślę. ;)

50
Tematy ogólne / Odp: Beckhoff vs Wago
« dnia: Października 06, 2016, 04:49:54 pm »
Jeśli soft będzie Wago wszystko zadziała. Jeśli "goły" CoDeSys wówczas potrzebne będą tzw "targety", czyli pliki definicji interfejsów do PLC.

51
Tematy ogólne / Odp: Beckhoff vs Wago
« dnia: Października 05, 2016, 08:59:49 pm »
Podłączę się pod pytanie: Czy moduły Beckhoff są kompatybilne ze sterownikiem Wago? Mam na oku moduły AO 0-10V Beckhoffa, są dużo tańsze niż Wago i chętnie bym je zastosował do sterowania przepustnicami ogrzewania powietrzem i wentylacją.

52
Programowanie / Odp: Światło zapalane czujką ruchu
« dnia: Września 17, 2016, 12:49:18 am »
A ja to zrobiłem tak:

Najważniejsze zmienne:
- manual jest zanegowana i jest to blokada czujników ruchu
- control to operator AND, który wymaga wyłączonej blokady

53
Programowanie / Odp: Czemu to cholerstwo nie działa?
« dnia: Września 11, 2016, 02:33:03 pm »
Wiedziałem o ryzyku nakładania się niewykonanych zapytań, ale odkładałem rozwiązanie na później. Dziękuję za prostą podpowiedź. Rozumiem działanie. Kluczem jest wartość .readystate, która dotyczy obiektu updater (zwanego nie wiem czemu w js "dokumentem"). Jeśli wartość .readystate istnieje ale wskazuje na brak zapytania/request, wówczas dokument updater się wykonuje.

Sam warunek myślę, że krócej zrobić tak. Jedna linijka zamiast pięciu. Wszak, interesuje nas wyłącznie stan 0 lub 4:

if (updater.readyState == 0 | updater.readyState == 4) {
         updater = $.ajax({
                       type: 'POST',
                       url: 'getdata.php',
                       data: {ADR: address},
                       success: function(data){
                               $('#Result').text(data);
                       },
         });
}

54
Programowanie / Odp: Czemu to cholerstwo nie działa?
« dnia: Września 11, 2016, 01:27:18 am »
No, admin, dołożyłeś do pieca. Ledwo zrozumiałem to co napisałem i dowaliłeś mi jakieś abrakadabry. Wrócę do rematu jak rozszyfruję co tej skrypt robi. :)

55
Programowanie / Odp: Czemu to cholerstwo nie działa?
« dnia: Września 10, 2016, 01:14:14 pm »
W międzyczasie "walki" z JS, zająłem sie czymś innym. Wzorując się na skryptach admina przerobiłem funkcję odczytującą wartość zadanego adresu z odświeżaniem wartości, bez migotania widocznego przy odświeżaniu z czym się biedziłem cały dzień. Czy mógłby ktoś rzucić okiem i powiedzieć czy to jest zgodne ze sztuką?

    <script type="text/javascript">
$(window).ready(function () {
            var address = 'QX1.0';
    setInterval(function() {
$.ajax({
                    type: 'POST',
                    url: 'getdata.php',
                    data: {ADR: address},
                    success: function(data){
                            $('#Result').text(data);
    },
});
    },1000);
});
    </script>

56
Programowanie / Odp: Czemu to cholerstwo nie działa?
« dnia: Września 09, 2016, 10:31:34 pm »
No i, jak to co powyżej, zrobić w drugą stronę, czyli WRITEPI?

57
Programowanie / Odp: Czemu to cholerstwo nie działa?
« dnia: Września 09, 2016, 10:10:16 pm »
Jeszcze jedno podejście do skryptów admina i SSI z odczytem przez php działa. W skrypcie html jest błąd. Poniżej poprawna wersja:

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
 
    <script type="text/javascript">
        $(document).ready(function() {
            $('#Button1').click(function() { //action on the button click
                var address = $('#address').text().replace(/ /g,''); //take the address from the filed and trim all spaces
                $.ajax({
                    type: 'POST',
                    url: 'getdata.php',
                    data: {ADR: address}, //send to the PHP file the address
                    success: function(data){ //what to do if data received
                        if (data.charAt(0) == '<') { //if reply starts with "<" it means that the address was wrong, and WAGO returns structured html
                            $('#Result').html(data.substring(4)); //show the WAGO message but without the initial "<br>"
                        }
                        else { //otherwise the data received is what we wanted
                            $('#Result').text('Reply: ' + address + ': ' + data); //show the result
                        }
                    },
                    error: function(jqXHR, textStatus, errorThrown) { //in case of connection error, print whatever you can get from the server
                        $('#Result').text(jqXHR.statusText+', '+textStatus+', '+errorThrown);
                    }
                }); //End of AJAX
            }); //End of Button.click()
        }); //End of document.ready()
    </script>
    <style type="text/css">
        .Button {height: 30px; width: 300px; border: gray dotted 2px; padding: 2px; text-align: center; line-height: 30px;}
    </style>
</head>
<body>
    <div id="addressField" style="width: 300px;"> Address to check: <div id="address" contenteditable="true" style="float: right; border: 1px solid black">QX0.0</div></div>
    <br>
    <div id ="Button1" class="Button">Click to read!</div>
    <br>
    <div id ="Result" class="Button"></div>
</body>
</html>

Skrypt php jest poprawny:

<?php
    
if(isset($_POST['ADR'])) {
        
$url "http://192.168.0.61/READPI"//change the IP to your WAGO's IP
        
$data = array('ADR' => $_POST['ADR'], 'FORMAT' => '%d');
 
        
$options = array(
            
'http' => array(
                
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
                
'method' => 'POST',
                
'content' => http_build_query($data)
            ),
        );
 
        
$context stream_context_create($options);
        
$result file_get_contents($urlfalse$context);
 
        echo 
$result;
    }
?>


Teraz będę się biedził nad przerobieniem skryptu php z ssi na wersję modbus. Może ktoś miałby ochotę pomóc? Zastanawiam się jak rozwiązać translację wejść/wyjść/zmiennych na adresy pamięci, tak, aby w skryptach posługiwać się nazwami zmiennych a nie numerami komórek.

58
Programowanie / Czemu to cholerstwo nie działa?
« dnia: Września 09, 2016, 07:01:41 pm »
Pewnie straszne głupoty próbuję robić, ale to są początki początków js.

Jest plik:

<html>
<head>
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery.e-dom.2.0.js"></script>
<script type="text/javascript">
var ServerName='http://tu jest oczywiście prawdziwa domena/getdata.php/';
 
$(window).load(function(){
    $('#Button1').ReadValue({
address: 'QX1.0'
    });
 
$(‘#Field1).bind(‘OnReadSuccess’, function(event, data) {
    alert(data);
});

    $.StartRefreshing();
});
</script>

</head>
<body>
    <div id ="Button1" class="Button">$data</div>
</body>
</html>

Oraz getdata.php:

<?php
IF ($_REQUEST['TYPE']=='READPI') {
    
$url "http://192.168.0.61/READPI?ADR=" $_REQUEST['ADR'] ."&FORMAT=" $_REQUEST['FORMAT'] ;
};
 
IF (
$_REQUEST['TYPE']=='WRITEPI') {
    
$url "http://192.168.0.61/WRITEPI?ADR1=" $_REQUEST['ADR1'] .
    
"&VALUE1=" $_REQUEST['VALUE1'] . "&FORMAT1=" $_REQUEST['FORMAT1'] ;
};
 
$handle fopen($url,"r") ;
$contents stream_get_contents($handle) ;
fclose($handle) ;
echo 
$contents;
?>

Wtyczka jQuery admina przerobiona wg opisu. Celem jest po prostu odczytanie wartości adresu QX1.0 za pośrednictwem pliku php i wypisanie w przeglądarce. Zapytanie żywcem o konstrukcji http://192.168.0.61/READPI?ADR=QX1.0 daje wartość jak trzeba. Podobnie programik php wykorzystujący phpmodbus daje wyniki jak powinien, spokojnie mogę sobie wylistować echo odczytanych wartości, ale wywołanie tego samego z pliku html z js, za chorobę nie działa. Testowałem wszystkie sposoby podane przez admina. Nie działa i już. Niestety w tym porąbanym js nic nie jest oczywiste. Język jest tak nieczytelny i niezrozumiały, że chyba bardziej nie może.

59
... no i tak to się wszystko kręci.  Nie ma modbusa.  Można czytać wiele zmiennych na raz.  Można zapisywać kilka równocześnie.

Czy jest szansa namówić na ściągawkę jak przerobić toto na modbus? Adresowanie po komórkach pamięci wydaje mi się bardziej logiczne niż tworzenie visu aby mieć adresy zmiennych. Przy okazji jedna robota mniej. Problem w tym, że zupełnie nie rozumiem logiki javascriptu i nie potrafię przepisać istniejącego kodu zapytującego ssi czy przez visu na modbus.

60
(Pod)Systemy i Funkcje / Odp: Czujnik ruchu tylko do oświetlenia.
« dnia: Września 09, 2016, 11:21:12 am »
Kupowałem je dość dawno temu. Jak widzę, już ich nie ma w tej cenie. :(

Strony: 1 [2] 3 4