OHSCE- 高可靠性的 PHP 通信框架

网友投稿 991 2022-10-22

OHSCE- 高可靠性的 PHP 通信框架

OHSCE- 高可靠性的 PHP 通信框架

OHSCE高可靠性的PHP通信框架-.Open HI-REL Signal Communication Engine

PHP以太网(TCP/UDP/ICMP)、RS232、RS485通信,可广泛直接或桥接各种网络工程通信。特别合适于对可靠性要求较高、上位机与末端协同工作的场景。如物联网设备通信、智能化系统、工业与自动化系统、可靠网络服务器、中控&边控&驱动。可运行于Windows、Linux、OS X。对Windows提供了全项功能支持,与自动化生态亲和。不过分追求高性能,充分平衡了可靠性与高性能。天生支持分布式,可大规模部署。在保证您的网络可靠性的前提下能跑出强悍的性能。过程化函数风格的框架具备高效的特性。特别亲切于工业自动化工程师、硬件工程师、物联网工程师、追求效率的PHP工程师的写法风格。OHSCE开放源代码,在OHSCE授权协议框架下您可以免费使用!

*采用高效的多进程模型,进程独立。

*支持Windows平台串口完美读取(无需指定长度)。

*支持Windows平台进程守护。

*支持Windows平台进程间内存通信,小型数据内存中转。

即将支持多个进程同时伺服一个端口

快速入门

一、检查环境是否支持OHSCE

系统:Windows / Linux / OSX

建议:WINDOWSSERVER2008及以上 UbuntuServer14.04LTS及以上

PHP:5.3及以上

建议PHP5.4及以上

PHP扩展:

Sockets,Shmop,Curl

二、修改配置文件

/config/oibc_sce_config.php

三、运行测试程序

3.1工作在以太网上

一个TCP服务端测试程序:

ini_set(‘memory_limit’,”88M”);//重置php可以使用的内存大小为64Mset_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){ //收到数据时的回调函数global $trya;echo $buf;Ohsce_socketwrite($socket,$trya.’hi ‘.$buf);return true;}function exampleaccept(&$socket,$ip,$port,$zv){ //新客户端到访时的回调函数global $trya;Ohsce_socketwrite($socket,$trya.’Welcome’.$ip.’:’.$port);return true;}Ohsce_eng_socket_server($ohsceserver,’tcp’,7626,‘127.0.0.1’,’example’,’exampleaccept’);//创建一个TCP服务端资源绑定127.0.0.1:7626 并传入回调函数Ohsce_eng_socket_server_runtcp($ohsceserver); //开始运行

对应的客户端测试程序:

ini_set(‘memory_limit’,”88M”);//重置php可以使用的内存大小为64Mset_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’);//创建一个TCP客户端资源并连接27.0.0.1:7626echo Ohsce_socketread($ohsceclient[‘socket’],1024)[1]; //收取欢迎信息Ohsce_socketsend($ohsceclient[‘socket’],’hello’); //发送数据echo Ohsce_socketread($ohsceclient[‘socket’],1024)[1]; //收取回复数据sleep(30);

UDP:

udpserver:

ini_set(‘memory_limit’,”88M”);//重置php可以使用的内存大小为88Mset_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){ //收到数据时的回调函数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’);//创建一个TCP服务端资源绑定127.0.0.1:7626 并传入回调函数@Ohsce_eng_socket_server_runudp($ohsceserver); //开始运行

UDPCLIENT:

ini_set(‘memory_limit’,”88M”);//重置php可以使用的内存大小为64Mset_time_limit(0);ob_implicit_flush(1);i n c l u d e(‘loadohsce.php’);Ohsce_eng_socket_client($ohsceclient,’udp’,7628);//创建一个TCP客户端资源并连接27.0.0.1:7626Ohsce_socketsend($ohsceclient[‘socket’],’hello’,0,0,‘127.0.0.1’,7626);Ohsce_socketrecvfrom($ohsceclient[‘socket’],$buf,0,0,$from,$port); //收取回复数据echo $buf.’|’.$from.’:’.$port;sleep(30);

3.2工作在工业自动化现场控制网络上

操作串口RS232/485测试程序:

ini_set(‘memory_limit’,”88M”);//重置php可以使用的内存大小为64Mset_time_limit(0);ob_implicit_flush(1);i n c l u d e(‘loadohsce.php’);Ohsce_eng_serial_creat($hscecom,”com7”); //OHSCE会默认为你创建一个 9600,n,8,1 写读的串口资源Ohsce_eng_serial_open($hscecom); //一旦通过该函数成功开启了串口,此串口就被OHSCE进程占用了 此时串口资源变为可用状态Ohsce_eng_serial_write($hscecom,”01030001000415c9”,true);//向串口设备发送数据 以16进制发送Ohsce_eng_serial_read($hscecom,$data,null,true); // 读取串口数据 返回数据长度为未知 以16进制返回echo $data; //输出数据sleep(30);

*内置简单串口服务器(透传):

http://ohsce.com/index.php/book/ohscezjcj/OHSCECOMSERVER-QS-101.html

*内置WABAPI串口服务器-WCA:

http://ohsce.com/index.php/book/ohscezjcj/OHSCEWCA-QS-103.html

3.3测试使用OHSCE的进程守护

我们先写一个无用的自杀进程:

sleep(60);exit;

编写OHSCE-PCENTER入口文件:

$ohsce_pcenter_pr_name=’测试’;$ohsce_pcenter_pr_prun=’\pexample.php’;$ohsce_pcenter_memmorykey=6901;//注意 不得与生成器冲突,否则请提前注册。

启动并守护这个进程

正式运行使用隐藏窗口模式。

3.4.1CLOUD_API3.4.2 CLOUD_MODBUS_DRIVE 通过OHSCE云API数据支持调用本地驱动应用本机串口对MODBUS-RTU设备进行施控。Ohsce_drive_cloud_modbus($comlink,”RTU”,”01”,‘01’,”40001”,”0002”);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C/C++实现 MiniTcMalloc】高并发内存池项目
下一篇:[开源项目]可观测、易使用的SpringBoot线程池
相关文章

 发表评论

暂时没有评论,来抢沙发吧~