簡介與快速開始

2018-01-10 23:19 更新

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í)崆白浴?


啟動(dòng)并守護(hù)這個(gè)進(jìn)程


正式運(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 

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)