Just nu i M3-nätverket
Gå till innehåll

Visning av data på webbsida


mitec

Rekommendera Poster

Hejsan!

En snabb bakgrund;

Min chef äger ett litet vattenkraftverk som numera är utbyggt med styrdator och automatik för pådrag, varvtal m.m.

Vattennivån i dammen mäts med tryckgivare och hålls konstant mha pådraget.

Vattenståndet är fastslaget i vattendom.

Nu är det en massa trätsjuka grannar som av historiska skäl får för sig att vattnet är alldeles för högt och går in på hans marker och saboterar utskov m.m. för att sänka dammen och sjön, vilket innebär dels att han förlorar inkomster (för att de häller ut vattnet för honom) samt att vattennivån ej hålls på i vattendomen fastställd nivå vilket i sig skulle kunna innebära att han får böter för detta.

När man frågar så är det ju ingen som har sett eller hört något givetvis och det är ju absolut ingen som haft nåt att göra med något sabotage. Däremot kan man höra att vattnet har varit för högt och att ingen har sett till det. (Detta händer uteslutande när ingen är hemma och kan kontrollera vattnet).

 

Nåväl;

Vi skulle vilja skapa en hemsida där

 

1: Vattennivån kan visas, momentant och historiskt, med högsta och lägsta uppmätta nivåer.

    Detta skall ju visas i en graf över tid och man ska kunna välja intervall.

 

2: Man skall kunna ange börvärde för vattenstånd samt manuellt justera pådrag och även välja Manuellt /Autoläge. Även kunna se data för aktuell effekt, pådrag varvtal m.m. 

    Detta läge måste naturligtvis vara skyddat så inte någon obehörig kan ändra på vattenstånd  eller     andra parametrar.

 

Kommunikationen mellan styrdatorn och en PC är löst. Datautväxlingen sker via en textfil (CSV).

 

I första hand gäller 1 ovan, det är det akuta i dagsläget, att vi får en logg på vattenståndet samt att folk kan gå in och se det i realtid och historiskt. 2 är överkurs och kan komma senare, men vi vill ha ett system som kan hantera allt från början.

 

Funderar på hur vi kan lösa detta smidigast

 

Egen webbserver hemma eller ska det ligga på vårat webbhotell?

Vilket språk används för skriptet?

Hur lägger man smidigast upp grafer?

Vilket grafverktyg är enklast och smidigast att använda? 

 

Kan tillägga att jag är i stort sett helt novis på området.

 

MVH

Micke

 

Länk till kommentar
Dela på andra webbplatser

är utbyggt med styrdator och automatik

Vilket styrsystem?

 

Kommunikationen mellan styrdatorn och en PC är löst. Datautväxlingen sker via en textfil (CSV).

Varför är den löst redan? Finns någon Scada/HMI på datorn idag? Om ja - vilket?

Finns någon operatörspanel? Om ja vilken?

Länk till kommentar
Dela på andra webbplatser

Eftersom vi arbetar med styrsystem till verktygsmaskiner så har vi helt enkelt tagit en begagnad CNC och modifierat för att passa detta. CNCn har inbyggd PLC vilken har använts för att lösa logiken och CNCn är ju av naturen avsedd att reglera position vilket vi har dragit nytta av (i detta fall vattenstånd). Vi har även gjort en USER-sida i CNC vilket utgör vårat HMI.

Vad gäller kommunikationen med PC har vi använt cnc protokollet för seriell överföring (RS232) och en snutt VB i PC som tar emot och lägger in datat i en CSV-fil.

Det är denna filen vi vill kunna visa i en graf för omvärlden.

/Micke

Länk till kommentar
Dela på andra webbplatser

Okej.. CNC ligger utanför mitt område..
..de banor jag då tänker är en OPC-server som tar hand om datat och till den en webbserver.
Eller köpa en operatörspanel, förslagsvis från Beijer, få den att snacka CNC. En sådan panel har inbyggd webbserver och andra bra fjärrstyrningsmöjligheter.

Länk till kommentar
Dela på andra webbplatser

I vb-programmet där man skriver till en csv-fil, där skulle man kunna skriva data till en databasserver. Heroku hostar postgresql, MySql hos surftown går att komma åt via fjärranslutning "I alla fall för mig". 

 

Att rita diagram så finns det massaor med libs. 

Ett exempel http://www.chartjs.org/

Länk till kommentar
Dela på andra webbplatser

..de banor jag då tänker är en OPC-server som tar hand om datat

Ja och vi kan ju kalla vårt VB-program för OPC-server om vi vill, vi har inte nätverkskort i CNC så vi måste tanka ur det seriellt.

 

och till den en webbserver.

Ok vilken server rekommenderas?

 

I vb-programmet där man skriver till en csv-fil, där skulle man kunna skriva data till en databasserver. Heroku hostar postgresql, MySql hos surftown går att komma åt via fjärranslutning "I alla fall för mig".

Tack för det, får kolla upp detta. Skulle jag inte kunna ha databasservern lokalt och "hosta" den hemma på webservern?

 

Att rita diagram så finns det massaor med libs.

 

Ett exempel http://www.chartjs.org/

Precis, massor med libs. Det var just det att jag inte vet vilket som är smidigast och klarar vårt behov. Finns inte tid att sätta sig in i alla och sedan välja...

 

/Micke

Länk till kommentar
Dela på andra webbplatser

Om tjänsten ska användas kommersiellt så lägg den inte hemma, utan webbhotell.

Grafer m m kan man göra hyfsat enkelt med Googie Chart API eller det som Phenomen rekommenderar.

 

Ska systemet sköta historiken behöver man en tjänst som hämtar datan och lagrar i databas (lämpligtvis).

Länk till kommentar
Dela på andra webbplatser

Tack för alla hjälpsamma svar jag lyssnar även om jag kanske går min egna väg. Jag menar, vem fan kommer på att bygga kraftverk av en gammal CNC...

 

Om tjänsten ska användas kommersiellt så lägg den inte hemma, utan webbhotell.


Har nog bestämt mej för att ha den hemma iallfall bl.a. av följande skäl

  • Den kommer inte vara kommersiell på något sätt utan detta är avsett för privat bruk helt och hållet.
  • Vi har på firman enbart grundabonemang på vårt webbhotell och vi vill inte utöka det för det här ändamålet.

Detta leder åter till frågan om vilken webbserver jag skall installera. Känns som APACHE är en icke kommersiell grej som funkar?

 

Grafer m m kan man göra hyfsat enkelt med Googie Chart API

 
Japp får bli Google Chart.

 

Ska systemet sköta historiken behöver man en tjänst som hämtar datan och lagrar i databas (lämpligtvis).

 

 

Låter som MySQL är en het kandidat till detta väl?

 

Återigen tack för er tid och kunskap.

Länk till kommentar
Dela på andra webbplatser

MySQL till Apache, japp, alternativt SQLite om du inte redan har MySQL installerat.

Länk till kommentar
Dela på andra webbplatser

Då skall vi sammafatta det hela;

 

Lokal webbserver, apache

SQLite för att hantera data

Google chart för att presentera dessa

 

Så långt allt väl och nu har jag ju säkert jobb ett halvår för att klura ut hur det skall fungera...

 

Men är det vettig i övrigt då?

Kommer det att ta 6 timmar för en användare att visa grafen för sista veckan eller går det någorlunda fort?

(Jag förutsätter att det är rulle på grejorna eftersom det hämtas ur databasen)

Jag förutsätter också att vi på sikt, när systemet skall byggas ut, kommer att kunna använda webservern för att fjärrstyra verket också? (dubbelriktad kommunikation, eller vad säger man?)

Länk till kommentar
Dela på andra webbplatser

Jag förutsätter också att vi på sikt, när systemet skall byggas ut, kommer att kunna använda webservern för att fjärrstyra verket också?

Hur styr du verket lokalt?

 

Finns det ett API? program som tar emot parametrar?

Länk till kommentar
Dela på andra webbplatser

Hur styr du verket lokalt?

I nuläget är det lite hardcore. Man får helt enkelt gå i i PLCn via CNCs operatörspanel och skriva in värdet (för exempelvis önskad dammnivå) i PLC register.

 

MEN vi har gjort ett VB program med en snygg form som kommunicerar med PLC/CNC via serieporten. Detta läser och skriver data direkt till PLC register. Kommunikationen fungerar bra, datat hamnar där det ska osv. Däremot känns nog programmet lite segt, jag har inte full koll på threading ännu, så vid dataöverföringen är formuläret ej tillgängligt. Detta skall ändras på så småningom.

 

Tanken är ju att förutom kommunikation skall detta programmet lägga datat i en SQLite databas för att lagras samt kunna visas på webbsida.

 

 

Har försökt klistra in en bild på programmet men jag får plugga lite forum först:)

Länk till kommentar
Dela på andra webbplatser

Det enklaste man kan göra i så fall är att man skickar värdena som parametrar till programmet och på så sätt kunna styra programmet från webbservern eller?

Länk till kommentar
Dela på andra webbplatser

Just så tror jag också, så programmet får ligga igång hela tiden på sevrern och kommunicera med CNC.
 
 

Det enklaste man kan göra i så fall är att man skickar värdena som parametrar till programmet


Som sagt, men hur sker detta enklast, via CSV eller ska jag lägga till en tabell i databasen för att hantera detta?


 

styra programmet från webbservern

 

 

Skall jag då använda Java eller liknande för att sätta dessa parametrar från websidan/servern, eller vilken metod anbefalls? Det bästa vore ju om man kan få gränssnittet att se lika ut både på websidan och kommunikationsprogrammet. Alternativet är ju att alltid använda websidan som HMI och programmet hanterar bara kommunikationen.

Länk till kommentar
Dela på andra webbplatser

Jag antar att du kör egen server & IIS som webbserver. 

 

Programmet kan du du använda för att läsa data och skriva det till databasen. Webbapplikationen använder sedan denna databas för läsa & presentera data ifrån. 

 

När det gäller styrning, så kan du ex. använda 

System.Diagnostics.Process.Start("c:\\sökväg\\till\\programmet.exe mode=automatic"); 

i webbapplikationen om du kör VB.NET förutsatt att webbapplikationen och styrprogrammet ligger i samma system. 

 

Obs!

För att använda System.Diagnostics.Process.Start() så måste göra ändrigar i konfigurationen

http://stackoverflow.com/questions/4679561/system-diagnostics-process-start-not-work-fom-an-iis

Länk till kommentar
Dela på andra webbplatser

Jag skulle dock göra det annorlunda genom att använda en linuxserver och använda antigen python eller ruby. 

 

Jag mår illa när jag tänker på VB :)

Länk till kommentar
Dela på andra webbplatser

Vi kommer antagligen köra apache som webserver.

 

Skulle vilja ha ett litet program som hela tiden hämtar data från CNC och lägger på databas, vilken webapplikationen i sin tur hämtar data från för presentation. Detta måste ju ligga igång hela tiden för att vi ska få historik på det hela.

 

Vad gäller styrningen så blir det ju egentligen samma sak, ett (annat) litet program som skriver till CNC från db istället. och detta behöver ju bara köras då någon parameter skall ändras och startas då på det sätt du beskriver.

 

Då får ju gränssnittet ligga i webapplikationen istället för, som vi gjort innan, i ett VB program. Det enda dessa vb appar gör är ju att kommunicera så det räcker ju om dessa är enkla konsolprogram.

 

Linux, Python, Ruby... Tjaa jag har ju hört dessa uttryck i nåt sammanhang... ;).

 

Om någon tycker det är intressant mottages gärna hjälp med projektet iom att jag börjar bli gammal och det är mycket nytt att lära sig.:)

Länk till kommentar
Dela på andra webbplatser

Du har ett fullt fungerande program som kommunicerar med utrustningen. Ändra bara i koden så att programmet kan hantera parametrar utifrån vid styrningen. 

 

Hur ofta den ska läsa & skriva från och till är det du som kan bestämma. Du har möjligheten att köra programmet hela tiden eller så kan du välja att schemalägga körningen.

 

Försök annars få tag i en som är duktig på ruby on rails som kan skriva om vb-programmet till ruby

https://github.com/hparra/ruby-serialport

 

Sedan är det bara att köra ett cron job av det i webbapplikationen via

https://github.com/javan/whenever

Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...

Jag kan tipsa om nginx som webserver också. Den är ganska smidig.

Sen vet jag inte om jag skulle ha styrningen av en damm tillgänglig över nätet även om det är över säker lina. Jag skulle nog valt att enbart presentera datat där. :)

 

Jag har även en fundering. Det finns väl en hederlig gammal analog nivålinjal någonstans på dammen? Har de trätsjuka grannnarna kikat på den och "sett" att det inte stämmer eller går de bara efter hur mycket vatten som kommer upp på deras mark?

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...