ãããª: Habr 管çã³ã³ãœãŒã«ã ãŠãŒã¶ãŒã®ã«ã«ããè©äŸ¡ãçŠæ¢ãèŠå¶ã§ããŸãã
TL; DRïŒ ãã®èšäºã§ã¯ãç£æ¥çšã€ã³ã¿ãŒãã§ãŒã¹éçºç°å¢ Webaccess/HMI Designer ãš WebOP ã¿ãŒããã«ã䜿çšããŠãã³ãã㯠Habr ã³ã³ãããŒã« ããã«ãäœæããŠã¿ãŸãã
ãã¥ãŒãã³ ãã·ã³ ã€ã³ã¿ãŒãã§ã€ã¹ (HMI) ã¯ãå¶åŸ¡ããããã·ã³ãšäººéã察話ããããã®äžé£ã®ã·ã¹ãã ã§ãã éåžžããã®çšèªã¯ãªãã¬ãŒã¿ãšã³ã³ãããŒã« ããã«ãåããç£æ¥ã·ã¹ãã ã«é©çšãããŸãã
WebOP â ãã¥ãŒãã³ãã·ã³ã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããã®èªåŸåç£æ¥çšç«¯æ«ã çç£å¶åŸ¡ããã«ãç£èŠã·ã¹ãã ãå¶åŸ¡å®€ãã¹ããŒã ããŒã ã³ã³ãããŒã©ãŒãªã©ã®äœæã«äœ¿çšãããŸãã ç£æ¥æ©åšãžã®çŽæ¥æ¥ç¶ããµããŒãããSCADA ã·ã¹ãã ã®äžéšãšããŠåäœã§ããŸãã
WebOPç«¯æ« - ããŒããŠã§ã¢
WebOP ã¿ãŒããã«ã¯ãARM ããã»ããµãããŒã¹ãšããäœé»åã³ã³ãã¥ãŒã¿ã§ãããã¢ãã¿ãŒãšã¿ããã¹ã¯ãªãŒã³ã 232 ã€ã®ã±ãŒã¹ã«åããHMI ãã¶ã€ããŒã§äœæãããã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠããã°ã©ã ãå®è¡ããããã«èšèšãããŠããŸãã ã¢ãã«ã«å¿ããŠã端æ«ã«ã¯ããŸããŸãªç£æ¥çšã€ã³ã¿ãŒãã§ã€ã¹ãæèŒãããŠããŸã: RS-422/485/XNUMXãè»èŒã·ã¹ãã ã«æ¥ç¶ããããã® CAN ãã¹ãè¿œå ã®åšèŸºæ©åšãæ¥ç¶ããããã® USB ãã¹ã ããŒãã端æ«ãã³ã³ãã¥ãŒã¿ã«æ¥ç¶ããããã® USB ã¯ã©ã€ã¢ã³ã ããŒãããªãŒãã£ãªå ¥åãšãªãŒãã£ãªåºåãäžæ®çºæ§ã¡ã¢ãªãšèšå®è»¢éçšã®MicroSDã«ãŒããªãŒããŒã
ãããã®ããã€ã¹ã¯ã匷åãªããã»ããµãæ¬æ Œçãªãã¹ã¯ããã ã³ã³ãã¥ãŒã¿ã®ãªãœãŒã¹ãå¿ èŠãšããªãã¿ã¹ã¯åãã«ããªãŒã«ã€ã³ã¯ã³ PC ã®äœäºç®ä»£æ¿åãšããŠäœçœ®ã¥ããããŠããŸãã WebOP ã¯ãå¶åŸ¡ããã³ããŒã¿å ¥åºåçšã®ã¹ã¿ã³ãã¢ãã³ç«¯æ«ãšããŠãä»ã® WebOP ãšçµã¿åãããŠããŸã㯠SCADA ã·ã¹ãã ã®äžéšãšããŠæ©èœããŸãã
ç£æ¥æ©åšãšçŽæ¥æ¥ç¶ã§ããWebOP端æ«
ããã·ãå·åŽãšIP66ä¿è·
ç±æŸæ£ãäœããããäžéšã® WebOP ã¢ãã«ã¯å®å šã«ç©ºå·ãè¡ããªãããã«èšèšãããŠããŸãã ããã«ããããã€ãºã¬ãã«ã«ææãªå Žæã«ããã€ã¹ãåãä»ããããšãã§ããããŠãžã³ã°å ã«äŸµå ¥ãã塵ã®éãæžå°ããŸãã
ããã³ãããã«ã¯ééãç¶ãç®ããªãäœãããŠãããä¿è·ã¬ãã«ã¯IP66ã§ãããå§åäžã§ã®æ°Žã®çŽæ¥æµžå ¥ã蚱容ããŸãã
WOP-3100T端æ«ã®èé¢ããã«
äžæ®çºæ§ã¡ã¢ãª
ããŒã¿æ倱ãé²ãããã«ãWebOP ã«ã¯ 128Kb ã®äžæ®çºæ§ã¡ã¢ãªãæèŒãããŠãããRAM ãšåãããã«æäœã§ããŸãã ã¡ãŒã¿ãŒã®æž¬å®å€ããã®ä»ã®éèŠãªããŒã¿ãä¿åã§ããŸãã åé»ãçºçããå Žåã§ããããŒã¿ã¯ä¿åãããåèµ·ååŸã«åŸ©å ãããŸãã
ãªã¢ãŒãã¢ããããŒã
端æ«äžã§å®è¡ãããŠããããã°ã©ã ã¯ãã€ãŒãµããã ãããã¯ãŒã¯ãŸã㯠RS-232/485 ã·ãªã¢ã« ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãªã¢ãŒãã§æŽæ°ã§ããŸãã ããã«ããããœãããŠã§ã¢ãæŽæ°ããããã«ãã¹ãŠã®ç«¯æ«ã«è¡ãå¿ èŠããªããªããããã¡ã³ããã³ã¹ãç°¡çŽ åãããŸãã
WebOP ã¢ãã«
WebAccess/HMI Designeréçºç°å¢
ç®±ããåºããç¶æ ã§ã¯ãWebOP ã¿ãŒããã«ã¯ãããããœãããŠã§ã¢ãå®è¡ã§ããåãªãäœé»å ARM ã³ã³ãã¥ãŒã¿ã§ããããã®ãœãªã¥ãŒã·ã§ã³ã®èŠç¹ã¯ç¬èªã® WebAcess/HMI ç£æ¥çšã€ã³ã¿ãŒãã§ã€ã¹éçºç°å¢ã§ãã ã·ã¹ãã 㯠XNUMX ã€ã®ã³ã³ããŒãã³ãã§æ§æãããŸãã
- HMIãã¶ã€ã㌠â ã€ã³ã¿ãŒãã§ã€ã¹ãšããã°ã©ãã³ã° ããžãã¯ãéçºããããã®ç°å¢ã ããã°ã©ãã®ã³ã³ãã¥ãŒã¿äžã® Windows äžã§å®è¡ãããŸãã æçµçãªããã°ã©ã 㯠XNUMX ã€ã®ãã¡ã€ã«ã«ã³ã³ãã€ã«ãããå®è¡æã«å®è¡ããããã«ç«¯æ«ã«è»¢éãããŸãã ãã®ããã°ã©ã ã¯ãã·ã¢èªã§ãå©çšã§ããŸãã
- HMI ã©ã³ã¿ã€ã â æçµç«¯æ«ã§ã³ã³ãã€ã«ãããããã°ã©ã ãå®è¡ããããã®ã©ã³ã¿ã€ã ã WebOP 端æ«ã ãã§ãªããAdvantech UNOãMICãããã³éåžžã®ãã¹ã¯ããã ã³ã³ãã¥ãŒã¿ã§ãåäœããŸãã LinuxãWindowsãWindows CE çšã®ã©ã³ã¿ã€ã ããŒãžã§ã³ããããŸãã
Hello world - ãããžã§ã¯ãã®äœæ
Habr ã³ã³ãããŒã« ããã«ã®ãã¹ã ã€ã³ã¿ãŒãã§ã€ã¹ã®äœæãå§ããŸãããã ã¿ãŒããã«äžã§ããã°ã©ã ãå®è¡ããŸã
æ°ãããããžã§ã¯ãã®äœæãšã¢ãŒããã¯ãã£ã®éžæ
ã³ã³ãã€ã«ãããããã°ã©ã ã WebOP ã«ããŒãããéã«äœ¿çšããéä¿¡ãããã³ã«ãéžæããŸãã ãã®ã¹ãããã§ã¯ãã·ãªã¢ã« ã€ã³ã¿ãŒãã§ã€ã¹ãéžæãããã端æ«ã® IP ã¢ãã¬ã¹ãæå®ã§ããŸãã
ãããžã§ã¯ãäœæã€ã³ã¿ãŒãã§ã€ã¹ã å·ŠåŽã«ã¯ãå°æ¥ã®ããã°ã©ã ã®ã³ã³ããŒãã³ãã®æš¹åœ¢å³ããããŸãã çŸæç¹ã§ã¯ããç»é¢ãé ç®ã®ã¿ã«æ³šç®ããŸãããããã¯ã端æ«ã«è¡šç€ºãããã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãåããçŽæ¥ã®ç»é¢ã§ãã
ãŸãããHello Worldããšããããã¹ããšããã¿ã³ã䜿çšããŠç»é¢ãåãæ¿ããæ©èœãåãã 2 ã€ã®ç»é¢ãäœæããŸãããã ãããè¡ãã«ã¯ãæ°ããç»é¢ãç»é¢ #XNUMX ãè¿œå ããåç»é¢ã«ããã¹ãèŠçŽ ãšãç»é¢éãåãæ¿ããããã® XNUMX ã€ã®ãã¿ã³ (ç»é¢ãã¿ã³) ãè¿œå ããŸãã 次ã®ç»é¢ã«é·ç§»ããããã«åãã¿ã³ãèšå®ããŠã¿ãŸãããã
ç»é¢ãåãæ¿ããããã®ãã¿ã³ãèšå®ããããã®ã€ã³ã¿ãŒãã§ã€ã¹
Hello World ããã°ã©ã ã®æºåãã§ããã®ã§ãã³ã³ãã€ã«ããŠå®è¡ã§ããŸãã ã³ã³ãã€ã«æ®µéã§ãå€æ°ãŸãã¯ã¢ãã¬ã¹ãæ£ããæå®ãããŠããªãå Žåããšã©ãŒãçºçããå¯èœæ§ããããŸãã ãšã©ãŒã¯ãã¹ãŠèŽåœçãšã¿ãªãããããã°ã©ã ã¯ãšã©ãŒããªãå Žåã«ã®ã¿ã³ã³ãã€ã«ãããŸãã
ãã®ç°å¢ã¯ç«¯æ«ãã·ãã¥ã¬ãŒãããæ©èœãæäŸããã³ã³ãã¥ãŒã¿ãŒäžã§ããã°ã©ã ãããŒã«ã«ã«ãããã°ã§ããããã«ããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ã«ã¯æ¬¡ã® XNUMX çš®é¡ããããŸãã
- ãªã³ã©ã€ã³ã·ãã¥ã¬ãŒã·ã§ã³ â ããã°ã©ã ã§æå®ããããã¹ãŠã®å€éšããŒã¿ ãœãŒã¹ã䜿çšãããŸãã ãããã¯ãã·ãªã¢ã« ã€ã³ã¿ãŒãã§ã€ã¹ãŸã㯠Modbus TCP çµç±ã§æ¥ç¶ããã USO ãŸãã¯ããã€ã¹ã§ãã
- ãªãã©ã€ã³ã·ãã¥ã¬ãŒã·ã§ã³ â å€éšããã€ã¹ã䜿çšããªãã·ãã¥ã¬ãŒã·ã§ã³ã
å€éšããŒã¿ã¯ãããŸããããäºåã«ããã°ã©ã ãã³ã³ãã€ã«ããŠããããªãã©ã€ã³ ã·ãã¥ã¬ãŒã·ã§ã³ã䜿çšããŸãã æçµçãªããã°ã©ã ã¯ããããžã§ã¯ã ãã©ã«ããŒã«æ¬¡ã®ååã§é 眮ãããŸãã ãããžã§ã¯ãå_ããã°ã©ã å.px3
ã·ãã¥ã¬ãŒã·ã§ã³ã§å®è¡ãããŠããããã°ã©ã ã¯ãWebOP 端æ«ã®ã¿ããã¹ã¯ãªãŒã³äžã§è¡ãã®ãšåãæ¹æ³ã§ããŠã¹ ã«ãŒãœã«ã§å¶åŸ¡ã§ããŸãã ãã¹ãŠãæå³ãããšããã«æ©èœããŠããããšãããããŸãã çŽ æŽãããã
ããã°ã©ã ãç©ç端æ«ã«ããŠã³ããŒãããã«ã¯ããããŠã³ããŒãããã¿ã³ãã¯ãªãã¯ããã ãã§ãã ãã ãã端æ«ãéçºç°å¢ã«æ¥ç¶ããèšå®ãè¡ã£ãŠããªããããUSB ãã©ãã·ã¥ ãã©ã€ããŸã㯠MicroSD ã¡ã¢ãª ã«ãŒãã䜿çšããŠãã¡ã€ã«ã転éããã ãã§æžã¿ãŸãã
ããã°ã©ã ã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯çŽæçã§ããããããã¹ãŠã®ã°ã©ãã£ã㯠ãããã¯ã説æããã€ããã¯ãããŸããã èæ¯ãå³åœ¢ãããã¹ãã®äœæã¯ãWord ã«äŒŒãããã°ã©ã ã䜿çšããããšããã人ã«ã¯æããã§ãã ã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããã«ã¯ãããã°ã©ãã³ã° ã¹ãã«ã¯å¿
èŠãããŸããããã¹ãŠã®èŠçŽ ã¯ããŠã¹ããã©ãŒã äžã«ãã©ãã°ããããšã§è¿œå ãããŸãã
èšæ¶ãæ±ã
ã°ã©ãã£ãã¯èŠçŽ ã®äœææ¹æ³ãããã£ãã®ã§ã次ã¯åçã³ã³ãã³ããšã¹ã¯ãªããèšèªãæäœããæ¹æ³ãåŠã³ãŸãããã å€æ°ããã®ããŒã¿ã衚瀺ããæ£ã°ã©ããäœæããŸããã U $ 100ã ãã£ãŒãèšå®ã§ãããŒã¿å: 16 ãããæŽæ°ãããã³ãã£ãŒãå€ã®ç¯å²: 0 ïœ 10 ãéžæããŸãã
ãã®ããã°ã©ã ã¯ãVBScriptãJavaScriptãããã³ç¬èªã®èšèªã® XNUMX ã€ã®èšèªã§ã®ã¹ã¯ãªããã®äœæããµããŒãããŠããŸãã ããã¥ã¡ã³ãã«äŸãããããšãã£ã¿ãŒã«èªåæ§æãã«ãããããããXNUMX çªç®ã®ãªãã·ã§ã³ã䜿çšããŸãã
æ°ãããã¯ããè¿œå ããŸãããã
ãã£ãŒãäžã§è¿œè·¡ã§ããå€æ°ã®ããŒã¿ã段éçã«å€æŽããç°¡åãªã³ãŒããæžããŠã¿ãŸãããã å€æ°ã« 10 ãå ç®ãã100 ãè¶
ããå Žåã¯ãŒãã«ãªã»ããããŸãã
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
ã¹ã¯ãªãããã«ãŒãã§å®è¡ããã«ã¯ãäžè¬ã»ããã¢ããèšå®ã§ã¡ã€ã³ ãã¯ããšããŠå®è¡ééã 250 ããªç§ã«èšå®ããŸãã
ã·ãã¥ã¬ãŒã¿ãŒã§ããã°ã©ã ãã³ã³ãã€ã«ããŠå®è¡ããŠã¿ãŸãããã
ãã®æ®µéã§ã¯ãã¡ã¢ãªå
ã®ããŒã¿ãæäœããŠèŠèŠçã«è¡šç€ºããæ¹æ³ãåŠã³ãŸããã å€éšããã€ã¹ (ã»ã³ãµãŒãã³ã³ãããŒã©ãŒ) ããããŒã¿ãåä¿¡ããããããã¡ã¢ãªãŒã«èšé²ããåçŽãªç£èŠã·ã¹ãã ãäœæããã«ã¯ãããã§ååã§ãã HMI ãã¶ã€ããŒã§ã¯ãç¢å°ä»ãã®å圢ãã€ã€ã«ãããŸããŸãªãã£ãŒããã°ã©ããªã©ã®ããŸããŸãªããŒã¿è¡šç€ºãããã¯ã䜿çšã§ããŸãã JavaScript ã¹ã¯ãªããã䜿çšãããšãHTTP çµç±ã§å€éšãœãŒã¹ããããŒã¿ãããŠã³ããŒãã§ããŸãã
ããã³ã³ãããŒã«ããã«
ç¿åŸããã¹ãã«ã䜿çšããŠãHabr 管çã³ã³ãœãŒã«ã®ã³ãã㯠ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããŸãã
ãªã¢ã³ã³ã¯æ¬¡ã®ããšãã§ããå¿ èŠããããŸãã
- ãŠãŒã¶ãŒãããã¡ã€ã«ãåãæ¿ãã
- ã«ã«ããšè©äŸ¡ããŒã¿ãä¿åãã
- ã¹ã©ã€ããŒã䜿çšããŠã«ã«ããšè©äŸ¡ã®å€ãå€æŽããŸã
- ãçŠæ¢ããã¿ã³ãã¯ãªãã¯ãããšããããã£ãŒã«ã«çŠæ¢ããŒã¯ãä»ããããã¢ãã¿ãŒãåãæ¶ãç·ã«å€ãããŸãã
ããããã®ãããã£ãŒã«ãå¥ã®ããŒãžã«è¡šç€ºããã®ã§ããããã£ãŒã«ããšã«ããŒãžãäœæããŸãã ã«ã«ããšè©äŸ¡ãã¡ã¢ãªå ã®ããŒã«ã«å€æ°ã«ä¿åããŸãããããã¯ãããã°ã©ã ã®éå§æã«ã»ããã¢ãã ãã¯ãã䜿çšããŠåæåãããŸãã
ã«ã«ããšè©äŸ¡ã®èª¿æŽ
ã«ã«ãã調æŽããã«ã¯ãã¹ã©ã€ã㌠(ã¹ã©ã€ã ã¹ã€ãã) ã䜿çšããŸãã èšé²ã¢ãã¬ã¹ã«ã¯ã»ããã¢ãããã¯ãã§åæåããå€æ°ãæå®ããŸãã ã¹ã©ã€ããŒå€ã®ç¯å²ã 0 ïœ 1500 ã«å¶éããŸããããããã§ãã¹ã©ã€ããŒã移åãããšãæ°ããããŒã¿ãã¡ã¢ãªã«æžã蟌ãŸããŸãã ãã®å Žåãã¹ã©ã€ããŒã®åæç¶æ ã¯ã¡ã¢ãªå ã®å€æ°ã®å€ã«å¯Ÿå¿ããŸãã
ã«ã«ããè©äŸ¡ã®æ°å€ã衚瀺ããã«ã¯ãæ°å€è¡šç€ºèŠçŽ ã䜿çšããŸãã ãã®åäœåçã¯ããHello Worldãããã°ã©ã äŸã®å³ãšäŒŒãŠãããåã«ãMonitor Addressãã«å€æ°ã®ã¢ãã¬ã¹ãæå®ããã ãã§ãã
çŠæ¢ãã¿ã³
ãçŠæ¢ããã¿ã³ã¯ããã°ã« ã¹ã€ããèŠçŽ ã䜿çšããŠå®è£ ãããŸãã ããŒã¿ã¹ãã¬ãŒãžã®åçã¯äžèšã®äŸãšåæ§ã§ãã èšå®ã§ã¯ããã¿ã³ã®ç¶æ ã«å¿ããŠãå¥ã®ããã¹ããè²ããŸãã¯ç»åãéžæã§ããŸãã
ãã¿ã³ãæŒããšãã¢ãã¿ãŒã«èµ€ãåãæ¶ãç·ã衚瀺ãããŸãã ããã¯ãPicture Display ãããã¯ã䜿çšããŠç°¡åã«å®è£
ã§ããŸãã ãã°ã« ã¹ã€ãã ãã¿ã³ã®ç¶æ
ã«é¢é£ä»ããããè€æ°ã®ç»åãæå®ã§ããŸãã ãããè¡ãããã«ããããã¯ã«ã¯ããã¿ã³ãšç¶æ
æ°ãæã€ãããã¯ãšåãã¢ãã¬ã¹ãäžããããŸãã ã¢ãã¿ãŒã®äžã«ããŒã ãã¬ãŒããä»ããç»åãåæ§ã®æ¹æ³ã§èšå®ãããŠããŸãã
ãŸãšã
å šäœçã«ã補åãæ°ã«å ¥ããŸããã 以åãåæ§ã®ã¿ã¹ã¯ã« Android ã¿ãã¬ããã䜿çšããçµéšããããŸãããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã®éçºã¯ã¯ããã«é£ããããã©ãŠã¶ API ã§ã¯åšèŸºæ©åšã«å®å šã«ã¢ã¯ã»ã¹ã§ããŸããã XNUMX å°ã® WebOP 端æ«ã§ãAndroid ã¿ãã¬ãããã³ã³ãã¥ãŒã¿ãã³ã³ãããŒã©ã®çµã¿åããã眮ãæããããšãã§ããŸãã
HMI Designer ã¯ããã®å€é¢šãªãã¶ã€ã³ã«ãããããããéåžžã«å é²çã§ãã ç¹å¥ãªããã°ã©ãã³ã° ã¹ãã«ããªããŠããåäœããã€ã³ã¿ãŒãã§ã€ã¹ãããã«ã¹ã±ããã§ããŸãã ãã®èšäºã§ã¯ãã¢ãã¡ãŒã·ã§ã³åããããã€ããã·ãªã³ããŒãã°ã©ãããã°ã« ã¹ã€ãããªã©ãã°ã©ãã£ã㯠ãããã¯ã®ãã¹ãŠã«ã€ããŠèª¬æããŠããããã§ã¯ãããŸããã å€ãã®äžè¬çãªç£æ¥çšã³ã³ãããŒã©ãŒãããã«ãµããŒãããŠãããããŒã¿ããŒã¹ ã³ãã¯ã¿ãå«ãŸããŠããŸãã
ãªãã¡ã¬ã³ã¹
WebAccess/HMI Designerããã³Runtimeéçºç°å¢ãããŠã³ããŒãå¯èœ
â
åºæïŒ habr.com