OHSCE-Open HI-REL Signal Communication Engine
OHSCE是一款高可靠性跨平臺(tái)的PHP通信框架,Windows友好且同時(shí)支持Linux和OS X。對TCP、UDP、ICMP、RS232/485通信、簡單內(nèi)存通信與數(shù)據(jù)暫存,可輕松駕馭各種以太網(wǎng)應(yīng)用和工業(yè)總線應(yīng)用。OHSCE科學(xué)的平衡了高性能和高可靠性,天生分布式支持,特別適合應(yīng)用于對可靠性和穩(wěn)定性有較高要求的場景。如:物聯(lián)網(wǎng)、工業(yè)與自動(dòng)化工程、智能化工程、可靠網(wǎng)絡(luò)服務(wù)。
OHSCE將多個(gè)原本屬于Linux的特性移植到WINDOWS平臺(tái)且具有良好的運(yùn)行效果。
*采用高效的多進(jìn)程模型,進(jìn)程獨(dú)立。
*支持Windows平臺(tái)串口完美讀?。o需指定長度)。
*支持Windows平臺(tái)進(jìn)程守護(hù)。
*支持Windows平臺(tái)進(jìn)程間內(nèi)存通信,小型數(shù)據(jù)內(nèi)存中轉(zhuǎn)。
一、檢查環(huán)境是否支持OHSCE
系統(tǒng):Windows / Linux / OSX
建議:WINDOWSSERVER2008及以上 UbuntuServer14.04LTS及以上
PHP:5.4及以上
建議PHP5.4.45
PHP擴(kuò)展:
Socket,Shmop,Curl
二、修改配置文件
/config/oibc_sce_config.php
三、運(yùn)行測試程序
3.1工作在以太網(wǎng)上
一個(gè)TCP服務(wù)端測試程序:
<?php ini_set('memory_limit',"88M");//重置php可以使用的內(nèi)存大小為64M set_time_limit(0); ob_implicit_flush(1); i n c l u d e('loadohsce.php'); $trya='ohsce_server_Example '; function example(&$socket,$buf,$len,$zv){ //收到數(shù)據(jù)時(shí)的回調(diào)函數(shù) global $trya; echo $buf; Ohsce_socketwrite($socket,$trya.'hi '.$buf); return true; } function exampleaccept(&$socket,$ip,$port,$zv){ //新客戶端到訪時(shí)的回調(diào)函數(shù) global $trya; Ohsce_socketwrite($socket,$trya.'Welcome'.$ip.':'.$port); return true; } Ohsce_eng_socket_server($ohsceserver,'tcp',7626,'127.0.0.1','example','exampleaccept');//創(chuàng)建一個(gè)TCP服務(wù)端資源 綁定127.0.0.1:7626 并傳入回調(diào)函數(shù) Ohsce_eng_socket_server_runtcp($ohsceserver); //開始運(yùn)行
對應(yīng)的客戶端測試程序:
<?php ini_set('memory_limit',"88M");//重置php可以使用的內(nèi)存大小為64M set_time_limit(0); ob_implicit_flush(1); i n c l u d e('loadohsce.php'); Ohsce_eng_socket_client($ohsceclient,'tcp',7626,'127.0.0.1'); //創(chuàng)建一個(gè)TCP客戶端資源并連接27.0.0.1:7626 echo Ohsce_socketread($ohsceclient['socket'],1024)[1]; //收取歡迎信息 Ohsce_socketsend($ohsceclient['socket'],'hello'); //發(fā)送數(shù)據(jù) echo Ohsce_socketread($ohsceclient['socket'],1024)[1]; //收取回復(fù)數(shù)據(jù) sleep(30);
UDP:
udpserver.php
<?php ini_set('memory_limit',"88M");//重置php可以使用的內(nèi)存大小為88M set_time_limit(0); ob_implicit_flush(1); i n c l u d e('loadohsce.php'); $trya='ohsce_server_Example '; function example(&$socket,$buf,$from,$port,$zv){ //收到數(shù)據(jù)時(shí)的回調(diào)函數(shù) global $trya; echo $buf; Ohsce_socketsend($socket,$trya.'hi '.$buf,0,0,$from,$port); return true; } Ohsce_eng_socket_server($ohsceserver,'udp',7626,'127.0.0.1','example');//創(chuàng)建一個(gè)TCP服務(wù)端資源 綁定127.0.0.1:7626 并傳入回調(diào)函數(shù) @Ohsce_eng_socket_server_runudp($ohsceserver); //開始運(yùn)行UDPCLIENT:
<?php ini_set('memory_limit',"88M");//重置php可以使用的內(nèi)存大小為64M set_time_limit(0); ob_implicit_flush(1); i n c l u d e('loadohsce.php'); Ohsce_eng_socket_client($ohsceclient,'udp',7628); //創(chuàng)建一個(gè)TCP客戶端資源并連接27.0.0.1:7626 Ohsce_socketsend($ohsceclient['socket'],'hello',0,0,'127.0.0.1',7626); Ohsce_socketrecvfrom($ohsceclient['socket'],$buf,0,0,$from,$port); //收取回復(fù)數(shù)據(jù) echo $buf.'|'.$from.':'.$port; sleep(30);
3.2工作在工業(yè)自動(dòng)化現(xiàn)場控制網(wǎng)絡(luò)上
操作串口RS232/485測試程序:
<?php ini_set('memory_limit',"88M");//重置php可以使用的內(nèi)存大小為64M set_time_limit(0); ob_implicit_flush(1); i n c l u d e('loadohsce.php'); Ohsce_eng_serial_creat($hscecom,"com7"); //OHSCE會(huì)默認(rèn)為你創(chuàng)建一個(gè) 9600,n,8,1 寫讀的串口資源 Ohsce_eng_serial_open($hscecom); //一旦通過該函數(shù)成功開啟了串口,此串口就被OHSCE進(jìn)程占用了 此時(shí)串口資源變?yōu)榭捎脿顟B(tài) Ohsce_eng_serial_write($hscecom,"01030001000415c9",true);//向串口設(shè)備發(fā)送數(shù)據(jù) 以16進(jìn)制發(fā)送 Ohsce_eng_serial_read($hscecom,$data,null,true); // 讀取串口數(shù)據(jù) 返回?cái)?shù)據(jù)長度為未知 以16進(jìn)制返回 echo $data; //輸出數(shù)據(jù) sleep(30);
3.3測試使用OHSCE的進(jìn)程守護(hù)
我們先寫一個(gè)無用的自殺進(jìn)程
<?php sleep(60); exit;
編寫OHSCE-PCENTER入口文件:
<?php $ohsce_pcenter_pr_name='測試'; $ohsce_pcenter_pr_prun='\pexample.php'; $ohsce_pcenter_memmorykey=6901;//注意 不得與生成器沖突,否則請?zhí)崆白浴?
正式運(yùn)行使用隱藏窗口模式
3.4.1CLOUD_API
云驅(qū)API可以讓您降低更新頻率或只更新指定組件既可以使用OHSCE_CLOUD上的最新的服務(wù)功能。
3.4.2 CLOUD_MODBUS_DRIVE -舉例云MODBUS驅(qū)動(dòng)
Ohsce_drive_cloud_modbus(null,"RTU","01",'01',"40001","0002"); ?
官方網(wǎng)站:WWW.OHSCE.ORG WWW.OHSCE.COM
GITHUB: https://github.com/OpenIBC/Ohsce
GIT@OSC : https://git.oschina.net/SFXH/Ohsce
開發(fā)者QQ群:374756165
捐助&支持:http://www.ohsce.com/index.php/company/
合作&贊助&支持:
Email:lyztj100@163.com
更多建議: