首页 > 编程语言 >php对接Modbus设备详细讲解

php对接Modbus设备详细讲解

时间:2023-04-13 16:24:49浏览次数:45  
标签:Modbus 地址 图中 讲解 php ID 模拟 设备

1、下载ModbusMaster类库文件

下载地址1:https://github.com/sergejey/majordomo-modbus    //功能码比较全,无案例

下载地址2:https://github.com/krakorj/phpmodbus  //类库功能码少,有案例

工具:

1.  Modbus Slave: 从机端模拟软件,这里测试可以把他作为服务端,PHP为客户端就是取该机子的数据。

2.   Modbus Poll: 主机仿真器,用于测试和调试Modbus从设备,这里测试也只是把他当做客户端使用。

3.   ModScan32:  主机/从机模拟程序 ,以后介绍。

4.   MThings:  一个国产免费软件, 既可以模拟主机设备 又可以模拟从机设备,以后介绍。

工具操作:

一.  Modbus Poll

1. 创建TCP/IP连接。

(1). 点击connection->connection,弹出参数窗口,可以按下面确

(2). 修改为slave机子对应的IP地址和端口,点击保存。

 

(3). 连接成功后,查看读写定义,可以按指定slave配置修改。

配置函数,点击setup->Read/Write Definition,弹出参数窗口,默认OK就可以。

Slave ID:设备从地址ID

Function:功能码

 

 

 

(4). 连接失败,Mbpoll面板会提示红色字体。面板文字说明如下。

Tx = 4表示向主站发送数据帧次数,图中为4次; Error = 0表示通讯错误次数,图中为0次; ID = 1表示模拟的Modbus子设备的设备地址,图中地址为1;F = 03表示所使用的Modbus功能码,图中为03功能码; SR = 1000ms表示扫描周期。红字部分,表示当前的错误状态,“No Connection”表示未连接状态。

(5). 查看读写数据。

 

标签:Modbus,地址,图中,讲解,php,ID,模拟,设备
From: https://www.cnblogs.com/hualingyun/p/17315238.html

相关文章

  • S7-1200 Modbus RTU 通信概述
    S7-1200ModbusRTU通信概述Modbus具有两种串行传输模式:分别为ASCII和RTU。Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0-247,其中0为广播地址,从站的实际地址范围为1-247。Modbus......
  • PHP中$_SERVER用法
    $_SERVER['PHP_SELF']#当前正在执行脚本的文件名,与documentroot相关。$_SERVER['argv']#传递给该脚本的参数。$_SERVER['argc']#包含传递给程序的命令行参数的个数(如果运行在命令行模式)。$_SERVER['GATEWAY_INTERFACE']#服务器使用的CGI规范的版本。例如,“CGI/1.1”。$_SE......
  • [转载]php递归生成树形结构(几种常见的数据结构)
    版权声明:本文为CSDN博主「陈文焕」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_23116221/article/details/109910846pid找上级id$array=array(array('id'=>1,'pid'=>0,'n'=>'河北省'),ar......
  • 如何利用CommMonitor抓取串口Modbus协议数据包
    如何利用CommMonitor抓取串口Modbus协议数据包原文链接:https://baijiahao.baidu.com/s?id=1728421275380437231&wfr=spider&for=pc今天来分享一下,如何抓取串口设备的ModbusRTU数据包。先到CEIWEI软件官网下载CommMonitor的最新版v12.0,才支持ModbusRTU/ASCII协议分析功能,......
  • PHP上传大型视频文件到服务器,解决方案
    ​ PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此......
  • Thinkphp6 自定义命令创建类文件
    以创建控制器为例1、先通过think命令创建一个make文件,效果如下图:phpthinkmake:commandmake/MyController 2、修改上面创建的文件【MyController.php】<?phpdeclare(strict_types=1);namespaceapp\command\make;usethink\console\Command;usethink\cons......
  • PHP连接MYSQL数据库参数设置机器增删查改操作
     1.param.php <?phpsession_start();if(!$_SESSION["user"]->poststuno)exit('你的工号不正确');if($_SESSION["user"]->juese=='001')exit('未知错误,请联系管理员0001');$db_host_main="192.168.*.*";//主数......
  • Linux 运维必须掌握150个命令讲解自我总结版本
    Linux运维必须掌握150个命令讲解https://wangchujiang.com/linux-command/apt-getlinux命令在线中⽂⼿册(51yip.com)explainshell.com-find(1)-searchforfilesinadirectoryhierarchy1.线上查询及帮助命令(3个)manhelpInfos ⽂件和⽬录操作命令(19个)l......
  • php的TP框架保存数据报错: SQLSTATE[HY000]: General error: 1366 Incorrect string v
    这一般情况就是保存表情字符导致的字符长度问题原因可能: (需要改字符集为 utf8mb4 排序规则为utf8mb4_general_ci)1.数据表字段不是utf8mb42.项目目录下文件.env里配置mysql  CHARSET=utf8需要该为 CHARSET=utf8mb43.如果不存在.env文件,则可能是config目......
  • Thinkphp3.2如何处理大规模并发写入问题
    1.大规模并发写入,出现数据库锁死,数据写入失败,数据表损坏等问题2.锁表需要配合事务使用3.具体代码如下M()->startTrans();$lot_check=M()->table('order')->lock(true)->where(['id'=>$id])->field('id,type')->find();$res=M()->add($data);if($r......