问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用RTU数据采集终端中的modbus功能

发布网友 发布时间:2022-04-28 22:22

我来回答

2个回答

懂视网 时间:2022-04-09 19:05

   OHSCE自动加载文件允许您将OHSCE保存为名为ohsce的文件夹并在上级目录引入加载文件从而使得您的程序代码更加的整洁。

    |U PRO

    |-/OHSCE/

    |-loadohsce.php

   现在查阅设备的说明书,搞清需要读/写的数据的寄存器/线圈的地址,以便将待控设备加入自己的程序逻辑。

   在本例中我们我们选用了一台AOAIDODI全能的复合控制采集器但仅仅演示对00000H长为1的地址的继电器(DO1)进行单路控制。即图中接灯的那路。

    例中使用COM7进行通信,其实我们是将一个USB(通串)转为RS485总线进行通信,挂站一个地址为01,波特率9600,校验无(N),数据位8,停1。

Ohsce_eng_serial_creat($hscecom,"com7",1,0,9600,‘n‘,8,1); //我们创建了一个串口资源并存入了$hscecom变量中,串口为com7,权限为1(写读),方式0(默认),波特率9600,无校验,数据位8,停止位1

     该函数的更详细的说明详见手册:Ohsce_eng_serial_creat

     [这里有一点注意部分WINDOWS朋友请务必核实您的串口的超时机制已经打开并设置了合适的超时时间.否则会导致函数长时间阻塞.]

     [LINUX下是/dev/ttyXX]

     下一步确认我们的逻辑,演示中我们简单的演示两次呼吸,即闭开闭开。

Ohsce_eng_serial_open($hscecom); //打开并占用串口资源
$test=null;
ohsce_drive_cloud_modbus($hscecom,"RTU","write",‘01‘,"00000","FF00");//调用云MODBUS驱动 方式一 使用此方式进行一次闭合
sleep(1);
Ohsce_eng_serial_write($hscecom,ohsce_drive_cloud_modbus($test,"RTU","write",‘01‘,"00000","0000")[‘data‘],false);//调用云MODBUS驱动 方式二 使用此方式进行一次开启
sleep(1);
Ohsce_eng_serial_write($hscecom,ohsce_drive_cloud_modbus($test,"RTU","write",‘01‘,"00000","FF00")[‘data‘],false);//调用云MODBUS驱动 方式二 使用此方式进行一次闭合
sleep(1);
ohsce_drive_cloud_modbus($hscecom,"RTU","write",‘01‘,"00000","0000");//调用云MODBUS驱动 方式一 使用此方式进行一次开启
Ohsce_eng_serial_close($hscecom);//不要忘记关闭串口资源

    在例中我们演示了OHSCE中MODBUS云驱动的两种调用方式,方式一为全自动的调用方式含发送、接收回馈、校验并判断结果为一体,方式二为单步调用,例如这里就是近写不考虑设备反馈成功与否。

    MODBUS_CLOUD_DRIVER位于手册的/组件&插件/DRIVER/中: 快速使用

    完整的程序代码:

<?php
/*
OHSCE_V0.1.26_B
高可靠性的PHP通信框架。
HTTP://WWW.OHSCE.ORG
@作者:林友哲 393562235@QQ.COM
作者保留全部权利,请依照授权协议使用。
*/
ini_set(‘memory_limit‘,"88M");//重置php可以使用的内存大小为64M
set_time_limit(0);
ob_implicit_flush(1);
include(‘loadohsce.php‘);
sleep(10);
echo ‘OK?‘;
sleep(2);
Ohsce_eng_serial_creat($hscecom,"com7");
Ohsce_eng_serial_open($hscecom);
$test=null;
ohsce_drive_cloud_modbus($hscecom,"RTU","write",‘01‘,"00000","FF00");//调用云MODBUS驱动 方式一
sleep(1);
Ohsce_eng_serial_write($hscecom,ohsce_drive_cloud_modbus($test,"RTU","write",‘01‘,"00000","0000")[‘data‘],false);//调用云MODBUS驱动 方式二
sleep(1);
Ohsce_eng_serial_write($hscecom,ohsce_drive_cloud_modbus($test,"RTU","write",‘01‘,"00000","FF00")[‘data‘],false);
sleep(1);
ohsce_drive_cloud_modbus($hscecom,"RTU","write",‘01‘,"00000","0000");
Ohsce_eng_serial_close($hscecom);

      将其另存为test.php

      三、运行测试

      以WINDOWS系统为例(上位机绝大多数为WINDOWS)

      编写一个BAT(TEST.BAT)

php %cd%/test.php

      确认串口闲置并为设备上电,运行TEST.BAT

 

(无法查看视频可看此简图) 技术分享

    四、附

    测试期间CLOUD_API/CLOUD_DRIVER可能会有比较多的调整,所以尽可能的跟随升级这两个组件。由于我们的IDC资源目前相对有限,所以OHSCETRY/GUEST/FREE/OPEN等TOKEN调用API会有相对的限制。大频率用户可以联系我们进行本地化服务,本地化将失去和云端同步升级、改进实时修正的优势,每一次跟进都需要进行一次本地化。

技术分享

     官方网站:http://www.ohsce.org & http://www.ohsce.com

     开发者QQ群:374756165

     GITHUB:https://github.com/OpenIBC/Ohsce

     GIT@OSC:https://git.oschina.net/SFXH/Ohsce

     手册地址:http://www.ohsce.com/index.php/book/

     合作&赞助:393562235(393562235@qq.com) 

     捐助&支持OHSCE:http://www.ohsce.com/index.php/company/

技术分享技术分享

使用PHP控制MODBUS-RTU设备

标签:时机   mod   加载   str   采集   body   windows   div   打开   

热心网友 时间:2022-04-09 16:13

登陆RTU WEB配置页面
确保RTU的网线接入路由器或者直接电脑(电脑要先设置好和RTU同个网段的IP),RTU默认IP地址为192.168.1.2。在浏览器输入IP地址,用户名、密码均为admin,确定后就可以进入RTU的本地WEB页面了。
如何使用RTU数据采集终端中的modbus功能?
配置MODBUS连接参数
说明:
1、点击RTU设置服务参数选项。
2、点击Edit进行编辑。
3、设置服务器IP地址(本电脑*IP地址是:110.80.17.74)或者域名地址
4、端口号(若经过 路由器转接需进行端口映射)
5、数据中心协议:MODBUS
6、启用服务器。
7、提交设置。
根据需要设置RTU ID号、MODBUS ID、SIM卡号,这几个参数跟注册包相关,用于中心识别不同的设备。
如何使用RTU数据采集终端中的modbus功能?
启用服务器端口,步骤如下:
1、开启服务端,设置端口号为27000,这里的端口号要与RTU上设置的端口一致,并且要有在路由器做好映射的端口。
2、启动服务器等待连接,第一次RTU会发送注册包请求连接服务端。
3、注册包示例:66 66 66 66 31 33 38 38 38 38 38 38 38 38 38 00 C0 A8 01 C3 00
如何使用RTU数据采集终端中的modbus功能?
测试一下modbus调试的是否正确连接,见下图:
把Hex显示打勾,可以看到注册包数据:66 66 66 66 31 33 38 38 38 38 38 38 38 38 38 00 C0 A8 01 C3 00
如果有类似的信息上传,说明modbus连接成功。
如何使用RTU数据采集终端中的modbus功能?
关于注册包的说明
首次注册包:
格式:
ID
PHONE_NUMBER
0
IP_ADD
ETX
4字节 11字节 1字节 4字节 1字节

说明:
ID: 8位HEX ID编号
PHONE_NUMBER: 11位手机电话号码的ASCII码
IP_ADD: 动态IP地址(HEX)
ETX: 0x00表明数据的结束。

例如:0x 78 56 34 12 31 33 30 36 36 36 36 38 38 38 38 00 c0 a8 01 42 00
解析如下:
78 56 34 12 表示ID号为12345678
31 33 30 36 36 36 36 38 38 38 38 表示手机号码为:13066668888
c0 a8 01 42 表示IP地址为:192.168.1.66

采集一个关开量,用于采集真实的数据:
1、要在RTU的配置页面里,启用开关量设置
首先要“选择开关/计数器模式“为开关模式,点击“开关/计数器输入配置“项
然后,选择开关/计数器模式为“开关模式“。因为计数器1-6路跟开关输入的3-8路是复用的,默认是”开关模式“就不用再配置。配置好后,点击Apply提交。
2、启用开关量配置
如何使用RTU数据采集终端中的modbus功能?
下发MODBUS数据采集开关输入
此时,就可以在网络调试助手上下发MODBUS数据采集开关输入,RTU就会回应数据,大概操作如下:
-显示RTU设备已建立连接,记得打勾。
-勾选16进制发送。
-下发MODBUS指令。
-点击发送
-对应的响应帧。
-RTU连接到SERVER后,SERVER会收到注册包,SERVER就可以下发下发MODBUS数据采集开关输入,RTU就会回应相应数据。
如何使用RTU数据采集终端中的modbus功能?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 烧烤纸为什么会烤焦,有没有预防烤纸变焦的方法 各种RS485&#47;232串口通讯设备的数据采集方案?要求可以实现远程电脑、手机、微信app查看和监控数据。 锡纸用多厚? 实时数据库采集的主要协议有哪些 长按鼠标滚轮是什么功能啊? 电脑鼠标滚轮两边每一边的作用 鼠标滚轮拉起来是做什么的 鼠标滚轮点击有什么用 600029 000520 600391 601808这些股票怎么样? 天津上市股票都有那些?名称及代码是什么?谢谢! 求救:中海油服601808被套! 高手指点股票600133和601808 有一本高中英语听力资料,叫《问道新东方英语听力》,几年前用的,不知道现在改名字没 delphi ProgressBar 中的StepIt,StepBy是什么意思? 601808和000858 STEP BY STEP 颈部淋巴结清扫术-2019年华医网继续教育答案 玛雅显示器是冠捷生产的吗? stepbystep3000第一册Unit1-12答案及原文 codestepbystep怎么调成中文 冠捷显示器,是不是AOC公司的产品 自动化设备数据采集哪家好? 我想用组态王来采集仪器输出的数据,仪器的通信协议是MOODBUS,该怎么做啊? 求详细介绍暴风影音左眼键原理 西门子200PLC从设备采集数据如何编程? 读三国演义里收获二十字 数据采集器采集的数据如何和上位机连接,在组态王里怎么才能读出采集器采集的数据 读了三国演义第九章读后感20字? plc数据采集是什么原理 怎么注册淘宝网,注册的时候是不是一定要输入手机号码? 淘宝认证不用自己的手机号行吗? 三国演义第二十回读后感20字? 三国演义第七回读后感简单易懂的20字? 三国演义 美髯公千里走单骑 汉寿侯五关斩六将 感悟 20字到40字 100公斤工业烘干机可以一次烘干多少衣服 《三国演义》第二回读后感20字? 烘干机里面能放多少件衣服才能干的快 三国演义第49回感悟20字 (快快快 今天要用 很急) 卫生间安装个烘干系统多少钱 衣服 xp 如何打开dhcp服务 基本证开户核准号是做什么用的?