// Obraz1
// 3 zbiorniki + 3 zawory + stan pompy
// demonstracja kontrolek do pobierania danych z PLC
======================================
<HTML><HEAD> // HTML - przepisać
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> // jw.
<script type="text/javascript" src="/applets/cp343.js" language="JavaScript1.5"></script> // jw.
<style type="text/css"> <!-- // jw.
@import url("main.css"); // jw.
--> </style> // jw.
<TITLE>Demo wizualizacji dla modułu SIEMENS CP343-1</TITLE> // do ew. korekty, dowolny nagłówek
</HEAD> // jw.
<BODY BGCOLOR="#FFFFFF"> // jw.
<center> // jw.
<script type="text/javascript" language="JavaScript1.5"> // jw.
var Obraz1 = new Obraz(700,410,"","img/wizualizacja.png") // wywołanie klasy Obraz
var Obraz1 = new Obraz(700 // rozmiar X
,410, // rozmiar Y
"", // typ linii + kolor (style CSS, np. „1px solid red”)
"img/wizualizacja.png") // gragika która będzie stanowić tło
Obraz1.zwloka_komunikacji = 500 // własność klasy, co ile z kolejki podstawiana jest nowa kontrolka do apletu Get
Obraz1.ip = "82.115.86.93:80" // własność klasy, IP CP : nr portu, domyślnie jest to port 80
//===================
// Kontrolki dla zbiornika 1
//==============
// Kontrolka, pasek prostokątny, który zmienia wypełnienie (tu: bargraf w zbiorniku)
// Wywołanie nowej instancji kontrolki KPoziomZB z klasy Obraz,
// wypełnienie podajemy w zakresie 0…100%
var zbiornik1 = new Obraz1.KPoziomZb("zbiornik1", // nazwa nowej instancji kontrolki
"blue", // kolor wypełnienia (kolory wg stylów CSS)
0, // wartość początkowa wypełnienia
1) // mnożnik do skalowania wypełnienia
zbiornik1.ustaw_pozycje(100,70,46,100) // lokalizacja (x,y) na ekranie, szerokość + wysokość grafiki
//zbiornik1.ustaw_any_pointer(new Obraz1.AnyPointer("BYTE",1,"M",0,0,0)) // parametryzacja adresu bezwzględnego[1]
// Składnia wskaźnika ANY : (VarType, VarCNT, VarArea, VarSubarea, Offset, VarBitOffset)[2]
// Vartype : BYTE, BOOL, WORD
// VarCNT : w naszym przypadku zawsze „1” i inne wg [1]
// VarArea : I, Q, M, DB
// VarSubarea : obszary w Vararea, nr bazy DB
// Offset : przesunięcie od zera, np. dla DB5.DBB10 wartość =„10”
// VarBitOffset : w przypadku adresacji bitu: przesunięcie bitu w bajcie
zbiornik1.ustaw_symbol("PoziomZ1(0/2)") // adres symboliczny zmiennej w PLC
Obraz1.dodaj_kontrolke(zbiornik1) // dodanie kontrolki do kolejki apletu Get
// Kontrolka, pole wyświetlające wartość analogową z opisami (tu: pole liczbowe z poziomem )
// Wywołanie nowej instancji kontrolki KDisplayAn z klasy Obraz
var zbiornik_wartosc1 = new Obraz1.KDisplayAn("zbiornik_wartosc1", // nazwa nowej instancji kontrolki
"1px solid red", // typ linii (style CSS)
"white", // kolor tła
"center", // wyśrodkowanie – Left, Right, center
"9px", // wielkość czcionki
"- - -", // wartość początkowa
"<b>Poziom Z1<br>", // napis przed wartością
"[%]", // Jednostka po wartości
1) // mnożnik (jw.)
zbiornik_wartosc1.ustaw_pozycje(50,100,50,40) // jw.
//zbiornik_wartosc1.ustaw_any_pointer(new Obraz1.AnyPointer("BYTE",1,"M",0,0,0)) // jw.
zbiornik_wartosc1.ustaw_symbol("PoziomZ1(0/2)") // jw.
Obraz1.dodaj_kontrolke(zbiornik_wartosc1) // jw.
// Kontrolka, pobiera wartość zmiennej cyfrowej, na podstawie wartości wyświetla jedną z dwóch grafik
// (tu: animacja zaworu pod zbiornikiem)
var zawor1 = new Obraz1.KCzytajBitGr("zawor1", // nazwa nowej instancji kontrolki
"img/zawor_c.png", // grafika dla stanu False
"img/zawor_z.png", // grafika dla stanu True
0) // wartość początkowa dla kontrolki
zawor1.ustaw_pozycje(81,239) // lokalizacja (x,y) na ekranie
zawor1.ustaw_any_pointer(new Obraz1.AnyPointer("BOOL",1,"DB",5,60,0)) // jw.
Obraz1.dodaj_kontrolke(zawor1) // jw.
// Kontrolka, pobiera wartość zmiennej cyfrowej, na jej podstawie wyświetla pierwszy lub drugi ciąg znaków
// (tu: opis tekstowy stanu zaworu)
var zawor_wartosc1 = new Obraz1.KCzytajBitTx("zawor_wartosc1", // nazwa nowej instancji kontrolki
"1px solid red", "white", "center", "9px", // parametry ramki, tła, czcionki, wyrównanie (jw.)
"<b>Zamknięty", "<b>Otwarty", // tekst dla wartości False/True
zawor_wartosc1.ustaw_pozycje(130,239,60,40) // jw.
zawor_wartosc1.ustaw_any_pointer(new Obraz1.AnyPointer("BOOL",1,"DB",5,60,0)) // jw.
Obraz1.dodaj_kontrolke(zawor_wartosc1) // jw.
//=======================
//Taki sam zwstaw kontrolek dla zb 2 i 3
// Kontrolka, w określonym miejscu na ekranie wyświetla grafikę
// nie posiada odwołania do zmiennych PLC
// (tu: pozycjonowanie grafiki pompy 2)
var statyczna = new Obraz1.KWstawGr("img/pompa_b.png") // wywołanie nowej instancji kontrolki +
// wskazanie lokalizacji grafiki do pobrania
statyczna.ustaw_pozycje(588,304) // docelowa pozycja grafiki
Obraz1.dodaj_kontrolke(statyczna) // aktywacja instancji
Obraz1.uruchom() // Instancja klasy obraz została zparametryzowana
// tutaj następuje jej uruchomienie
</script> // HTML – przepisać
</center> // jw.
</BODY> // jw.
</HTML>
// Obraz2
// ustawienie wartości zmiennej analogowej oraz cyfrowej
// demonstracja kontrolek do zapisywania, ustawiania zmiennych w PLC
...
darekisap