Pc - Oheislaite (rs 232 modbus)

Moi! Kysyisin asiaan enemmän vihkiytyneiltä vinkkejä siitä mitä menetelmiä/ohjelmointikieliä käyttäsitte semmoisessa tapauksesa, kun olisi tarkoitus liittää pc:n rs 232 porttiin AVR atmega32 kortti (sen ohjelmoin c:llä, modbus) ja tarkoitus olisi, että tekisin pc:lle käyttiksen johon mahdollisuus päästä netin kautta kiinni, ja käyttis kommunikoisi tuon atmega32 kortin kanssa...

Olen ajatellut että tekisin php:llä selaimeen käyttiksen, saako php:n kommunikoimaan sarjaportin kanssa? onko muita menetelmiä? esim javalla tehty internet softa/php:n kanssa kommunikoiva softa ym...
Mikä mielestänne hyvä vaihtoehto?
9952
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Javalle löytyy ainakin ilmainen modbus-protokollakirjasto ja javalla on myös helppo tehdä web-sovelluksia. Tietty jos php:sta saa luotua java-objekteja (voiko?) ja käytettyä modbussia tätä kautta, on käyttöliittymän tekeminen php:lla järkevän kuuloinen idea. Mutta php:n saaminen puhumaan sarjaportin kanssa tai ainakin modbus-protokollaa voi olla käytännössä mahdotonta.

Äänestä
  • En tiedä saako php:stä luotua java-objekteja... Jos teen käyttäliittymän javalla, niin tarkoitatko silloin java apletteja vai mitä?

    Äänestä

  • "Tietty jos php:sta saa luotua java-objekteja (voiko?) ja käytettyä modbussia tätä kautta, on käyttöliittymän tekeminen php:lla järkevän kuuloinen idea. Mutta php:n saaminen puhumaan sarjaportin kanssa tai ainakin modbus-protokollaa voi olla käytännössä mahdotonta."

    Uuden moduulin php:lle tekee muutamassa tunnissa. Noin paljon siis paloi aikaa kun porttasin kirjaston php:lle muutama vuosi sitten. Vai tarkoitatko ettei Modbusia voi käyttää C/C :n kautta? Mikä siitä tekee noin erikoisen?

    Php:llä voi luoda Java-objekteja monella eri tavalla. Ainahan erilaiset RPC-menetelmät toimivat. Ja suoraankin vaikkapa Quercusilla. Jokin Java-bridgekin on olemassa, en ole kokeillut.

    Miksi php:llä ei voisi tehdä suoraan modbus-protokollaa puhuvaa ohjelmaa? Eihän siihen tarvita muuta kuin mahdollisuus avata sarjaportti. Olisin erittäin yllättynyt jos tämä ei olisi mahdollista php:lla.

    Äänestä

  • ?? kirjoitti:

    "Tietty jos php:sta saa luotua java-objekteja (voiko?) ja käytettyä modbussia tätä kautta, on käyttöliittymän tekeminen php:lla järkevän kuuloinen idea. Mutta php:n saaminen puhumaan sarjaportin kanssa tai ainakin modbus-protokollaa voi olla käytännössä mahdotonta."

    Uuden moduulin php:lle tekee muutamassa tunnissa. Noin paljon siis paloi aikaa kun porttasin kirjaston php:lle muutama vuosi sitten. Vai tarkoitatko ettei Modbusia voi käyttää C/C :n kautta? Mikä siitä tekee noin erikoisen?

    Php:llä voi luoda Java-objekteja monella eri tavalla. Ainahan erilaiset RPC-menetelmät toimivat. Ja suoraankin vaikkapa Quercusilla. Jokin Java-bridgekin on olemassa, en ole kokeillut.

    Miksi php:llä ei voisi tehdä suoraan modbus-protokollaa puhuvaa ohjelmaa? Eihän siihen tarvita muuta kuin mahdollisuus avata sarjaportti. Olisin erittäin yllättynyt jos tämä ei olisi mahdollista php:lla.

    "Uuden moduulin php:lle tekee muutamassa tunnissa. Noin paljon siis paloi aikaa kun porttasin kirjaston php:lle muutama vuosi sitten. Vai tarkoitatko ettei Modbusia voi käyttää C/C :n kautta? Mikä siitä tekee noin erikoisen?"

    Ongelma on, että C/C :lle on vaikea löytää hyviä ilmaisia modbus-kirjastoja, kun taas javalle sellainen löytyy. Tämä johtuu automaatioalan tavasta tehdä business:tä. Jos rahaa on se 500€, niin sillä saa kyllä jo ostettua modbus-kirjaston C/C käyttöön myöskin. Sitten on myös olemassa OPC/Modbus -konversiosoftia jotka ovat käteviä jos softa tehdään WIndowsiin. OPC:ta sitten voinee käyttää vaikkaa php:sta suoraan, koska se perustu ihan COM-objekteihin - tai ainakin pythonista sitä voi käyttää.

    Äänestä

  • ?? kirjoitti:

    "Tietty jos php:sta saa luotua java-objekteja (voiko?) ja käytettyä modbussia tätä kautta, on käyttöliittymän tekeminen php:lla järkevän kuuloinen idea. Mutta php:n saaminen puhumaan sarjaportin kanssa tai ainakin modbus-protokollaa voi olla käytännössä mahdotonta."

    Uuden moduulin php:lle tekee muutamassa tunnissa. Noin paljon siis paloi aikaa kun porttasin kirjaston php:lle muutama vuosi sitten. Vai tarkoitatko ettei Modbusia voi käyttää C/C :n kautta? Mikä siitä tekee noin erikoisen?

    Php:llä voi luoda Java-objekteja monella eri tavalla. Ainahan erilaiset RPC-menetelmät toimivat. Ja suoraankin vaikkapa Quercusilla. Jokin Java-bridgekin on olemassa, en ole kokeillut.

    Miksi php:llä ei voisi tehdä suoraan modbus-protokollaa puhuvaa ohjelmaa? Eihän siihen tarvita muuta kuin mahdollisuus avata sarjaportti. Olisin erittäin yllättynyt jos tämä ei olisi mahdollista php:lla.

    "Miksi php:llä ei voisi tehdä suoraan modbus-protokollaa puhuvaa ohjelmaa? Eihän siihen tarvita muuta kuin mahdollisuus avata sarjaportti. Olisin erittäin yllättynyt jos tämä ei olisi mahdollista php:lla."

    Teknisesti tämä on toki mahdollista, mutta modbus on kuitenkin sen verran monimutkainen protokolla, että sen tekeminen itse ei oikein maksa vaivaa. Muutenkin voi olla aika vaikea selittää jollekin ulkopuoliselle taholle, että juu koodasinpa itse modbus-protokollan - kyllä se toimii, ihan oikeasti, usko pois!

    Äänestä

  • ?? kirjoitti:

    "Tietty jos php:sta saa luotua java-objekteja (voiko?) ja käytettyä modbussia tätä kautta, on käyttöliittymän tekeminen php:lla järkevän kuuloinen idea. Mutta php:n saaminen puhumaan sarjaportin kanssa tai ainakin modbus-protokollaa voi olla käytännössä mahdotonta."

    Uuden moduulin php:lle tekee muutamassa tunnissa. Noin paljon siis paloi aikaa kun porttasin kirjaston php:lle muutama vuosi sitten. Vai tarkoitatko ettei Modbusia voi käyttää C/C :n kautta? Mikä siitä tekee noin erikoisen?

    Php:llä voi luoda Java-objekteja monella eri tavalla. Ainahan erilaiset RPC-menetelmät toimivat. Ja suoraankin vaikkapa Quercusilla. Jokin Java-bridgekin on olemassa, en ole kokeillut.

    Miksi php:llä ei voisi tehdä suoraan modbus-protokollaa puhuvaa ohjelmaa? Eihän siihen tarvita muuta kuin mahdollisuus avata sarjaportti. Olisin erittäin yllättynyt jos tämä ei olisi mahdollista php:lla.

    Jos kysymys on RTU toteutuksesta, yksi mahdollinen ongelma, kieliestä riippumatta, on kehyksen lähetys ehyesti. Jos ohjelma kirjoittaa merkin kerrallaan väylälle/puskuriin ja käyttis vaihtaa keskenkaiken prosessia, voi siitä seurata yli 3,5 merkin pituinen tauko, josta seuraa kehyksen rikkoituminen. Modbus ASCII toteutuksessa kyseistä ongelmaa ei ole, koska siinä kehyksen loppu tunnistetaan rivin vaihdosta, eikä aijoituksesta. RTU toteutuksessa voi yrittää päästä eroon kehyksen rikkoitumisesta säätämällä puskurien kokoja/tyyppiä ja käyttämällä flush käskyä.

    Äänestä

  • Java-applikaatioserveri pystyyn, asenna Quercus (=javalla tehty php-versio, jotain 4x nopeampikin kuin natiivi) sekä Java modbus-kirjasto (jar-tiedosto vaikka applikaatioserverin lib/kirjastohakemistoon). Näin saat modbus tuen helposti php:lle, tyyliin "$modbus = new ModbusKirjasto(); $modbus->avaa("com1:");" tai miten ikinä homma meneekään.

    Äänestä

Käyttöliittymän tekoon valittava kieli riippuu siitä millaista käyttöliittymää olet tekemässä. Jos olet tekemässä selainpohjaista käyttöliittymää niin silloin PHP, JavaScript, jne. ovat yleisiä kieliä, muutoin taas C#, C , Java, jne.

Älä sotke sarjaporttia käyttöliittymään vaikka se olisi mahdollista, vaan tee sille oma "ajuri" ja siihen selkeä rajapinta jota kautta, verkkoa käyttäen, käyttöliittymä pääsee siihen käsiksi. Esim. voit tehdä C#:lla, tms. sen laitteisto "ajurin" siten, että siltä voi pyytää tai käskyttää ihan HTTP kutsulla, jolloin saat esim. dataa PHP:hen ihan vain tyyliin: $arvo = file_get_contents("http://localhost:8484/rekisteri?action=get®ister=2").


Jos tarkoituksesi on tehdä palikka jolla pääsee kiinni verkon kautta MODBUS RS/232/485 väylään, niin suosittelen hommaamaan kaupasta suoraan Modbus TCP -> RTU palikan, (eivät maksa paljoa). Javalla en lähtisi sarjaporttia kopeloimaan, (ei sovellu kovin hyvin laitteisto läheiseen ohjelmointiin).

Äänestä
  • Selainpohjaista käyttöliittymää olen tekemässä, eli php:llä koodaan "serveriin" nyt pitäisi siis päästä käyttämään sarjaporttia modbus-protokollalla.Pc:een siis käyttöliittymä ilmeisesti html php ja php:stä voisi käyttää modbus ajuria jollakin kielellä koodattuna? Ideana tässä, että pc:hen pääsee netin kautta kiinni ja pc:ssä on modbus-väylässä toimiva oheislaite(avr kontrolleripohjainen)

    Äänestä

Kommentoi aloitusta


Oppipoikaminäkin kirjoitti:

Moi! Kysyisin asiaan enemmän vihkiytyneiltä vinkkejä siitä mitä menetelmiä/ohjelmointikieliä käyttäsitte semmoisessa tapauksesa, kun olisi tarkoitus liittää pc:n rs 232 porttiin AVR atmega32 kortti (sen ohjelmoin c:llä, modbus) ja tarkoitus olisi, että tekisin pc:lle käyttiksen johon mahdollisuus päästä netin kautta kiinni, ja käyttis kommunikoisi tuon atmega32 kortin kanssa...

Olen ajatellut että tekisin php:llä selaimeen käyttiksen, saako php:n kommunikoimaan sarjaportin kanssa? onko muita menetelmiä? esim javalla tehty internet softa/php:n kanssa kommunikoiva softa ym...
Mikä mielestänne hyvä vaihtoehto?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu