PMAC与Modbus主站进行Modbus Tcp通讯

PMAC与Modbus主站进行Modbus Tcp通讯

创建modbus通讯参数

在项目的PMAC Script Language\Global Includes下创建一个名为00_Modbus_Para.pmh的pmh文件。

Modbus[0].Config.ServerPort = 0 
Modbus[0].Config.ConnectTimeOut = 6000
Modbus[0].Config.SendRecvTimeOut = 0 Modbus[0].Config.ServerIpAddr[0]=127
Modbus[0].Config.ServerIpAddr[1]=0
Modbus[0].Config.ServerIpAddr[2]=0
Modbus[0].Config.ServerIpAddr[3]=1Sys.ModbusServerEnable = 1;

具体的参数查看手册,样例使用的是本机的回环地址。

创建modbus 后台C程序

在C Language\Background Programs下添加一个后台C应用程序,名为capp1。在capp1文件夹下创建一个capp1.c的source文件。

int main(void)
{	struct timespec sleeptime = {0};sleeptime.tv_nsec = NANO_10MSEC;	// #defines NANO_5MSEC & NANO_10MSEC are availableInitLibrary();  // Required for accessing Power PMAC library//modbus client 使用socket0 连接到 ServerModbusConnect(0);//自定义读写 float数据float wdata[5] = {0,0,0,0,0};3float rdata[5] = {0,0,0,0,0};//开始连续执行,若要退出 p110=0pshm->P[110] = 1;while(pshm->P[110]){//P变量赋值到要写入的变量wdata[0] = (float)pshm->P[0];wdata[1] = (float)pshm->P[1];wdata[2] = (float)pshm->P[2];wdata[3] = (float)pshm->P[3];wdata[4] = (float)pshm->P[4];//modbus float writeModbusFloatWrite(0,0,5,wdata);//modbus float readModbusFloatRead(0,0,5,rdata);//读取的变量赋值到P变量pshm->P[100] = rdata[0];pshm->P[101] = rdata[1];pshm->P[102] = rdata[2];pshm->P[103] = rdata[3];pshm->P[104] = rdata[4];//执行一次sleep 10msnanosleep(&sleeptime,NULL);}//断开modbus 连接				ModbusClose(0);CloseLibrary();return 0;
}

创建启动程序

在PMAC Script Language\PLC Programs文件夹下创建一个plc1.plc程序。

//延时启动c app
call Timer.msec(500)system "/var/ftp/usrflash/Project/C\ Language/Background\ Programs/capp1.out"disable plc 1

运行

右击项目选择构建并下载项目,下载完成后终端发送save保存到控制器。
在Watch界面上查看sys.ModbusServerThreads值是否是1。
添加监控数据p0,5和p100,5
在这里插入图片描述

在终端输入enable plc 1,启动plc程序。
在终端输入p0=1,2,3,4,5
在这里插入图片描述
在终端中输入p110=0退出连续执行
在终端中输入p0=0,p100的值并不会变化,并且sys.ModbusServerThreads变成了0.
在这里插入图片描述
终端再启用plc1程序后
在这里插入图片描述
watch界面数据更新,p100值为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/113463.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Jmeter做接口测试(功能测试)全流程分析

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。 明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用…

【机器学习7】特征缩放

特征缩放 🍀特征缩放的重要性🌱归一化🌱标准化🌱更高级的缩放方法🌸导入数据集&将数据集划分为训练集和测试集🌸Sklearn-Learn算法实现归一化🌸Sklearn-Learn算法实现标准化 🍀特…

Google登录SDK

一、接入的准备工作 官方文档链接地址:开始使用一键登录和注册 按照步骤进行接入即可 二、项目参考(Unity项目) 注意:代码版本如果不适用新的Google API 请自行参考最新版本接口 SDKGoogleSignInActivity 主要用于登录的代码。Un…

[Linux]进程程序替换

[Linux]进程程序替换 文章目录 [Linux]进程程序替换进程程序替换的意义见一见进程程序替换进程程序替换的原理进程程序替换中的写时拷贝介绍进程程序替换接口 进程程序替换的意义 Linux系统下使用fork系统函数创建子进程后,子进程只能执行继承的部分父进程代码&…

108页石油石化5G智慧炼化厂整体方案PPT

导读:原文《108页石油石化5G智慧炼化厂整体方案PPT》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。以下是部分内容,

Redis7之介绍(一)

1. 是什么 Redis:REmote Dictionary Server(远程字典服务器) Remote Dictionary Server( 远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、…

电商数仓项目需求及架构设计

一、项目需求 1.用户行为数据采集平台搭建 2.业务数据采集平台搭建 3.数仓维度建模 4.统计指标 5.即席查询工具,随时进行指标分析 6.对集群性能进行监控,发生异常时报警(第三方信息) 7.元数据管理 8.质量监控 9.权限管理&#xff…

浅谈Lua协程和函数的尾调用

前言 虽然不经常用到协程,但是也不能谈虎色变。同时,在有些场景,协程会起到一种不可比拟的作用。所以,了解它,对于一些功能,也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…

b站手机缓存文件转MP4

b站缓存的文件 音频、视频、弹幕是分开的 这里我只用到了音频和视频所以只介绍这一部分 b站的缓存视频文件和路径结构如下 默认缓存路径 内部存储\Android\data\tv.danmaku.bilil\download\89720189 文件夹结构 文件夹 c_738583 这是单个视频的缓存文件夹 进入c_738583文件夹…

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…

山西电力市场日前价格预测【2023-09-01】

日前价格预测 预测明日(2023-09-01)山西电力市场全天平均日前电价为305.25元/MWh。其中,最高日前电价为349.30元/MWh,预计出现在19: 30。最低日前电价为240.52元/MWh,预计出现在12: 45。 价差方向预测 1: 实…

了解 HarmonyOS

引言 在开始 HarmonyOS 开发之前,了解其背景、特点和架构是非常重要的。本章将为你提供一个全面的 HarmonyOS 概览。 目录 什么是 HarmonyOS HarmonyOS 的发展历程 HarmonyOS 的特点 HarmonyOS 的架构 HarmonyOS 与其他操作系统的比较 1. 什么是 HarmonyOS …

Elasticsearch 7.6 - APi基础操作篇

ES7.6-APi基础操作篇 前言相关知识索引相关创建索引查询索引查询所有索引删除索引关闭与打开索引关闭索引打开索引 冻结与解冻索引冻结索引解冻索引 映射相关创建映射查看映射新增字段映射 文档相关(CURD)新增文档根据ID查询修改文档全量覆盖根据ID选择性修改根据条件批量更新 …

Qt之遮罩—实现不规则窗体

Qt之setMask() 前言 使用遮罩可以将窗口形状多样化,变成各种各样的图片或者图形,先看一下效果吧👇 可以看到现在的窗口是一束花,而我们拖动花就相当于拖动窗口, setMask()只是说可以让哪些地方可见哪些地方不可见其…

方面级别情感分析之四元组预测

情感四元组预测现有方法 阅读本文之前我们默认你对情感分析有基本的认识。 如果没有请阅读文章(https://tech.tcl.com/post/646efb5b4ba0e7a6a2da6476) 情感分析四元组预测涉及四个情感元素: 方面术语a,意见术语(也叫观点术语)o, 方面类别ac&#xff0c…

我是如何成为一名全栈工程师的?

经历了将近一年的时间,我终于阶段性地完成了从iOS开发到后端开发的角色转变。 现在我可以自豪地说,我已经接近一名全栈工程师了,已经熟悉了后端开发的各种工具、环境和一些后端工作的方式。 接下来,我将继续熟悉框架、工具、语言…

python基础教程:re模块用法详解

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了&a…

Django实现音乐网站 ⒁

使用Python Django框架制作一个音乐网站, 本篇主要是歌手页-全部歌手页功能开发。 目录 分出首页样式内容 创建首页样式文件 首页引入样式文件 全部歌手列表 创建路由 显示视图 引入分页实现库 视图方法 创建歌手首页 增加歌手跳转 导航条改活 首页增加…

Windows和Linux环境中安装RocketMQ并集成SpringBoot进行本地测试(史上最全)

1.Windows环境中安装RocketMQ 1.1 安装前的环境准备 JDK1.8、Maven、Git 1.2 RocketMQ下载 RocketMQ 官方网站 | RocketMQ (apache.org) 按照如下进行下载: 1.3 配置环境变量 在系统环境变量中新增如下配置: 变量名:ROCKETMQ_HOME 变量参数&…

新增!视频智能分析/AI算法智能分析网关V5告警功能添加教程来咯!

智能分析网关系列是基于边缘AI计算技术,可对前端摄像头采集的视频流进行实时检测分析,能对监控画面中的人、车、物进行识别,可实现的检测包括:人脸检测与识别、车辆检测与识别、烟火识别、安全帽/反光衣识别、区域入侵识别等&…