Factory Cast version 3.1

Relevanta dokument
FactoryCast HMI. Premium & Quantum PLC. Applets

Monitor Pro V7.x SCADA. Förstå och skapa symboler

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

FactoryCast HMI. Premium & Quantum PLC. FactoryCast HMI epost-tjänst

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

Monitor Pro V7 SCADA. Kom-igång med kommunikation Unitelway TCP/IP

Language Integrated Query, LINQ, och databaser

Windows Forms Winstrand Development

Webbserver och HTML-sidor i E1000 KI

Web Services. Cognitude 1

Magelis XBT. Magelis XBT operatörspaneler. Ladda projekt till och från operatörspanel

Webbtjänster med API er

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Webbtjänster med API er

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Metoder (funktioner) Murach s: kap Winstrand Development

Komponenter med COM (och COM+/VC++ 7.0)

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

TDDC77 Objektorienterad Programmering

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Tentamen, EDAA10 Programmering i Java

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Övning. Introduktion och förberedelser

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Datorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;

Laboration A Objektsamlingar

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Laboration 1 Introduktion till Visual Basic 6.0

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Arrayer. results

ASP.NET Thomas Mejtoft

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Mål med lektionen! Repetera och befästa kunskaperna.

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Styrsystem M580. Användare tips för Modicon M580. Skapad: Rev

Magelis XBT. Magelis XBT operatörspaneler. Funktioner i Dialouge Table

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Beskrivning av PiiGAB QuickPost

Telia Connect för Windows

Arrayer (fält)

Övning: Arbeta med Azure Explorer

Lösningar för tenta 3 DAT043,

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Att skriva till och läsa från terminalfönstret

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Exceptions (undantag) Murach s: kap 7

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Classes och Interfaces, Objects och References, Initialization

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

LÖSNINGSFÖRSLAG TENTAMEN

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

WinStudio - Uppstart. Drifttagning av operato rspanel med IndraWorks och WinStudio. IndraWorks 14. Version

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Räkna med ASP.NET Web Forms

Objektorienterad programmering i Java

OOP Objekt-orienterad programmering

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Kopiering av objekt i Java

PROV. 13 JSP Standard Tag Library

Frekvenstabell över tärningskast med C#

Java, klasser, objekt (Skansholm: Kapitel 2)

Klasser och objekt. Henrik Johansson. August 20, 2008

DELPROV 1 I DATAVETENSKAP

TENTAMEN OOP

Profibus. Altivar/Altistart. Kom-igång med Profibus till ATS48/ATV28 (via Modbusgateway)

Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL. Version

Karlstads Universitet, Datavetenskap 1

RDT Externt Webbtjänst Gränssnitt

Övning Dictionary. Övning 1. Steg 1: På din virtuella maskin, starta Visual Studio.

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Användarhandledning Version 1.2

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Tentamen OOP

Kylmas lätta guider Till PlantWatch PRO3

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

12 Metaprogrammering i Java

TDIU01 - Programmering i C++, grundkurs

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Transkript:

Factory Cast version 3.1 Webbaserad HMI Web services 2006-07-03

INNEHÅLLSFÖRTECKNING 1 BAKGRUND...3 2 FACTORY CAST 3.1 OCH WEB SERVICES...3 2.1 EXEMPEL PÅ ANVÄNDNINGSOMRÅDE...4 3 PROGRAMEXEMPEL MED C# OCH WEBBTJÄNSTEN SYMBOLICXMLDA...5 3.1 UNITY PRO PROJEKTET...5 3.2 FACTORY CAST CONFIGURATOR...6 3.3 C# PROJEKTET, EN ENKEL KLIENT...8 3.3.1 Ange en webbreferens...9 3.3.2 C# projektets kod...10 Huvudkontor Centrallager Säljkontor Säljkontor Säljkontor Schneider Electric AB Schneider Electric AB Schneider Electric AB Schneider Electric AB Schneider Electric AB Djupdalsv 17-19 Brogetorp Skönsbergsv. 3 Datavägen 21 B Jägersrovägen 160 191 29 SOLLENTUNA 642 83 FLEN 856 41 SUNDSVALL 400 92 GÖTEBORG 212 37 MALMÖ Tel: 08-623 84 00 Tel: 0157-652 00 Tel: 060-57 27 00 Tel: 031-748 35 00 Tel: 040-22 75 40 Fax: 08-623 84 85 Fax: 0157-652 50 Fax: 060-57 27 03 Fax: 031-68 35 40 Fax: 040-94 31 70

1 BAKGRUND Internet och www har gått från statiska webbdokument (html) till dynamiska dokument som ASP, Java Applet o.s.v. Det tredje steget är nu "Web Services". Man kan se en XML webbtjänst som en maskin eller en komponent som erbjuder klienter någon typ av praktisk funktion och dessutom med global räckvidd. Till skillnad från andra objektmodellspecifika protokoll som DCOM, RMI o.s.v. används det välkända standardiserade protokollet HTTP och ett dataformat baserat på XML. SOAP SOAP (Simple Object Access Protocol) är det protokoll som klienter använder för att utföra förfrågningar hos en XML Web tjänst. SOAP är ett protokoll som kompletterar HTTP protokollet. Här definieras en XML grammatik för att specificera namn på de metoder, returvärden och parametrar som en klient vill köra på en webbtjänst. Om en klient vill göra en förfrågan hos en webbtjänst måste den ange metod och parametrar med just denna XML grammatik. Specifikationen av SOAP definierar många saker, några av de vikigaste är: Formatet Hur data ska kodas Hur meddelandet ska skickas Hur svar ska tas emot WSDL Huvuddelen av ett SOAP meddelande är XML och webbservern (FactoryCast modulen) förväntar sig att klienten ska använda en viss uppsättning XML taggar för att koda parametrar till metoderna. Klienten behöver inte ha tillgång till XML schemat då en webbtjänst förväntas vara självbeskrivande. Allt klienten behöver göra är att skicka frågesträngen "wsdl", svaret från webbservern kallas för Web Service Description och det schema som används kallas Web Service Description Language. Beskrivningen innehåller tillräckligt med information för att en klient ska klara att konstruera ett SOAP meddelande i ett format som webbtjänsten kan hantera. 2 FACTORY CAST 3.1 OCH WEB SERVICES Factory Cast definierar två webbtjänster: ModbusXMLDA Dataaccess till Modbus variabler (Modbus-adressering) SymbolicXMLDA Dataaccess till variabelnamn (addressallokerade) Schneider Electric AB 3 (12)

2.1 Exempel på användningsområde Ekonomisystem som t.ex. SAP kan hantera webbtjänster. Produktionshanteringssystem, Ekonomisystem Pocket PC Produktionsutrustning Lager Produktionsutrustning Exempel där flera klienter kan tänkas vilja använda webbtjänsten. En klientapplikation vill kunna justera värden under maskincykeln, en databas vill logga kördata, en Pocket PC används av underhållspersonal och nästa maskin i produktionskedjan vill ha data för att kunna justera receptdata. Klientapplikation Databasloggning Recepthantering Pocket PC Produktionsmaskin Produktionsmaskin Schneider Electric AB 4 (12)

3 PROGRAMEXEMPEL MED C# OCH WEBBTJÄNSTEN SYMBOLICXMLDA 3.1 Unity Pro projektet Exportera Unity Pro projektets variabellista i XVM format. I dialogen välj namn och format XVM. Schneider Electric AB 5 (12)

3.2 Factory Cast Configurator Starta en ny 'Configuration" FactoryCast modulens IP adress Sökvägen till den exporterade variabelfilen (MyTags.XVM) Klicka 'OK' och i nästa dialog 'Add'. Schneider Electric AB 6 (12)

Klicka 'Apply' och Ok Kryssa de variabler som ska vara möjliga att skriva till med hjälp av knappen 'Attributes'. För över taglistan med menyval 'Transfer Namespace' Schneider Electric AB 7 (12)

3.3 C# projektet, En enkel klient Starta upp ett vanligt C# Windowsapplication projekt. Projektnamnet i exemplet är 'fctb'. I startformuläret definieras följande kontroller Klick händelsen ska hämta tag namn och lista tagnamnen i Listboxen 'Tagnamn' Listboxens dubbelklick händelse tar valt tagnamn och hämtar tagnamnets aktuella värde Valt tagnamn kan skrivas, det värde som ska skrivas anges i textboxen. Skrivning sker då knappen 'Skriv' klickas Schneider Electric AB 8 (12)

3.3.1 Ange en webbreferens Via menyn 'Project Web reference' öppnas dialogen 'Add Web Reference' 1 2 5 3 4 6 1. Ange adressen till FactoryCast modulen och klicka 'Go' 2. I modulens startsida klicka 'Documentation' 3. Klicka 'Web Services' 4. Välj vilken av de två Web services som modulen erbjuder. I detta exempel väljs 'SymbolicXMLDA' 5. Ange ett namn på just denna webbreferens 6. Klicka 'Add Reference' I 'Solution Explorer' ska nu referensen synas, här fick referensen namnet webrefsymblist Schneider Electric AB 9 (12)

Om Visual Studio.Net Object Browser öppnas kan man se alla klasser och dess metoder som Visual Studio.Net autogenererar då webbreferensen upprättas Vidare i exemplet kommer några av de metoder som finns definierade i klassen 'SymbolXmlDa' att användas 3.3.2 C# projektets kod 3.3.2.1 Hämta taglistan Ett objekt av typen webrefsymblist.symbolicxmlda definieras globalt för klassen 'Form1'. Objektet ger sedan tillgång till de metoder som behövs för att klara formulärets uppgift. Ett objekt av typen webrefsymblist.descriptions deklareras public partial class Form1 : Form webrefsymblist.symbolicxmlda symbs = new fctb.webrefsymblist.symbolicxmlda(); webrefsymblist.descriptions[] descs; string msg = "Ett fel inträffade"; Under 'Lista' knappens klickhändelse hämtas tagnamnen och läggs in i Listboxen private void cmdlist_click(object sender, EventArgs e) // Radera alla ev. tidigare inmatningar i listboxen lsttags.items.clear(); try // Metoden Browse returnerar en array av 'Descriptions' Schneider Electric AB 10 (12)

descs = symbs.browse(); // Loopa samlingen och lägg in varje Description // objekts egenskap 'Name' i listboxen foreach (webrefsymblist.descriptions desc in descs) lsttags.items.add(desc.name); catch (System.Web.Services.Protocols.SoapHeaderException exsoaph) MessageBox.Show(exSoapH.Message, msg); catch (System.Web.Services.Protocols.SoapException exsoap) MessageBox.Show(exSoap.Message, msg); catch (System.Net.WebException exweb) MessageBox.Show(exWeb.Message, msg); catch (SystemException ex)messagebox.show(ex.message, msg); 3.3.2.2 Listboxens dubbelklick händelse Här ska det namnet som dubbelklickades i listboxen användas som argument till 'Read' metoden. Metoden Read returnerar en array av Item objekt. I exemplet returneras ett Item objekt vars egenskap 'IntValue' innehåller värdet och som läggs i labelkontrollen private void lsttags_doubleclick(object sender, EventArgs e) // Sträng som ska innehålla tagnamnet string[] sname = new string[1]; // En arry av items, metoden 'Read' // returnerar en Item array webrefsymblist.items[] itms; // Koll något är valt i listan if (lsttags.selecteditem!= null) // Ta valt tagnamn sname[0] = lsttags.selecteditem.tostring(); // Anropa Read metoden try itms = symbs.read(sname); // Loopa igenom Item arrayen // (ett index då ett namn skickades med Readmetoden) // Lägg över Item egenskapen 'IntValue' i stringform // till label kontrollen foreach (webrefsymblist.items itm in itms) lblval.text = itm.intvalue.tostring(); catch (System.Web.Services.Protocols.SoapHeaderException exsoaph) MessageBox.Show(exSoapH.Message, msg); catch (System.Web.Services.Protocols.SoapException exsoap) MessageBox.Show(exSoap.Message, msg); catch (System.Net.WebException exweb) MessageBox.Show(exWeb.Message, msg); catch (SystemException ex) MessageBox.Show(ex.Message, msg); Schneider Electric AB 11 (12)

3.3.2.3 Skriva ett värde Under knappen 'Skriv' kan ett värde skickas till den variabel som är markerad i listboxen private void cmdok_click(object sender, EventArgs e) // Ta det värde som ska skrivas int ival = 0; // Skapa en Itemarray med ett index då Write metoden // kräver ett Itemarray arg webrefsymblist.items[] itms = new fctb.webrefsymblist.items[1]; ; // Skapa Item itms[0] = new fctb.webrefsymblist.items(); // Koll att det finns något valt i listboxen if (lsttags.selecteditem!= null) try // Konvertera det i textboxen önskade värdet som ska skrivas ival = Int32.Parse(txtNewVal.Text); // Sätt Item egenskaper itms[0].intvalue = ival; // Värdet itms[0].name = lsttags.selecteditem.tostring(); // Tagnamn itms[0].symboltype = "4"; // Typ // Anropa write metoden symbs.write(itms); catch (System.Web.Services.Protocols.SoapHeaderException exsoaph) MessageBox.Show(exSoapH.Message, msg); catch (System.Web.Services.Protocols.SoapException exsoap) MessageBox.Show(exSoap.Message, msg); catch (System.Net.WebException exweb) MessageBox.Show(exWeb.Message, msg); catch (System.InvalidCastException exc) MessageBox.Show(exC.Message, msg); catch (SystemException ex) MessageBox.Show(ex.Message, msg); Schneider Electric AB 12 (12)