当前位置: 首页 > news >正文

PLC 程序设计标准化方法

PLC 程序设计的标准化方法先从内容或者方法层面进行

流程的分解,将分解的内容称为要素,要素的有机结合便构成

了标准化的设计。流程标准化设计完成之后需要对各个要素

分别进行标准化的设计。

2.1、 PLC 程序设计的要素分解与有机结合

根据软件程序设计的一般性方法结合PLC 程序设计的特

点,可以按以下 5 个要素对PLC 程序设计进行分解:文档的建

立与管理、PLC 系统的外部接口、变量定义、程序架构、软

件检验。

程序的架构是 PLC 程序设计的核心,其他要素都围绕其

展开和为其服务;文档为程序设计提供依据、指导、检验以及

数据关系;变量是程序设计的数据流表达;外部接口为PLC 系

统和执行机构、人机界面以及第三方系统提供通讯;而软件的

检验则为程序的准确率提供保障。通过以上这 4 个要素,基本

能够确立程序要实现的目标,以及设计程序所需要的“原材

料”,接下来便是通过适当地方式也即标准化的程序架构来实

现程序的功能[1,2,3]。

程序要素的有机结合就是从流程上来完成程序的设计,

可以分为5 个步骤,分别为确定所需文档、需求表及变量表等

内容,开始程序代码设计、联调联试、试车(见图 1)。按照这

样的流程,PLC 程序设计标准化的设计问题实际上转化成要素

的标准化设计问题。

2.2 、PLC 程序设计的要素标准化设计

不同的程序设计所需要的文档种类和数量是不同的。根

据不同的功能、时间节点、文档对于程序的作用,可以把所需

的文档归成几类,从功能角度分类可将文档分为:功能/工况说

明类文档、变量信息类文档、接口类文档、程序设计辅助类

文档以及检验类文档。

实现接口的标准化,首先得根据具体的项目情况确定应

用哪种通讯协议,确定好通讯协议之后,需要确定具体的传输

数据,包括数据的方向性和数据的数量以及数据的实时性要

求 。

变 量 的 标 准 化 则 分 为 输 入 输 出 变 量 的 标 准 化 和 中 间 变

量 的 标 准 化 。 对 于 输 入 变 量 ,由 于 不 同 项 目 的 不 同 要 求 ,某 一

部 件 的 物 理 地 址 往 往 会 产 生 变 化 。 这 些 地 址 一 旦 更 改 ,将 导 致

对 程 序 也 需 要 相 应 进 行 修 改 ,修 改 量 通 常 较 大 。 鉴 于 这 种 情 况 ,

需 要 在 物 理 地 址 和 变 量 名 称 之 间 引 入 一 组 中 间 变 量 ,通 过 输

入 输 出 变 量 和 中 间 变 量 的 地 址 映 射 ,以 应 对 物 理 地 址 的 变 动

和 变 量 名 称 的 固 定 。 采 用 现 行 软 件 设 计 较 多 的 做 法 ,中 间 变 量

采 用 变 量 名 而 非 物 理 地 址 作 为 变 量 的 寻 址 方 式 。 为 了 解 决 映

射 程 序 的 实 现 问 题 ,在 下 节 中 提 出 了 程 序 代 码 的 自 动 化 生 成

的 方 法 。

从 程 序 的 设 计 过 程 来 看 ,软 件 检 验 可 以 分 为 3 个 内 容 :单

个 功 能 块 的 检 验 ,联 调 检 验 以 及 测 试 检 验 ,并 针 对 各 自 特 点 ,分

别 制 定 标 准 化 检 测 方 法 。

2.3、 PLC 程 序 的 架构

PLC 的 程 序 设 计 更 多 的 属于 结构化 的 程 序 设 计 ,即整个 程

序 由 一 系列功 能 块 构成 ,功 能 块 则 是程 序 的 最基本单 元。 这 种

结构的 好处是能 够使一 些 大 的 复杂的 软 件 问 题 分 解 成 诸多

小的简单的软件问题[4]。然而经常使用的PLC 程序模块有很

多并不能做到功能的相对独立,有许多的互锁、状态等需要在

程序中使用,根据它的这种特点,程序的架构可以分为 3 层。

第一层是基本功能块,包括 I/O 输入输出处理、外部接口处理

等,这些功能块的内部功能较为简单,但重复度高,且不受不同

设备的不同工况的影响;第二层是机构功能块,根据基本功能

块得到的数据来实现各个机构的功能,包含的内容有输入命

令,运行允许,驱动器控制,接触器控制以及特殊故障检测;第

三层是系统功能,是对控制系统的功能实现和处理,包括全局

的运行允许,通讯检测等[5]。以基本功能块为基础,机构功能

块为主要控制内容,系统功能实现了各个机构的整合以及全

局的控制,实现了整个电气控制系统的功能。

相关文章:

PLC 程序设计标准化方法

PLC 程序设计的标准化方法先从内容或者方法层面进行流程的分解,将分解的内容称为要素,要素的有机结合便构成了标准化的设计。流程标准化设计完成之后需要对各个要素分别进行标准化的设计。2.1、 PLC 程序设计的要素分解与有机结合根据软件程序设计的一般性方法结合PLC 程序设计…...

设计模式-笔记

文章目录七大原则单例模式桥模式 bridge观察者模式 observer责任链模式 Chain of Responsibility命令模式 Command迭代器模式 Iterator中介者模式 Mediator享元模式 Flyweight Pattern组合模式 composite装饰模式 Decorator外观模式 Facade简单工厂模式工厂方法模式工厂抽象模式…...

【全志T113-S3_100ask】12-3 Linux蓝牙通信实战(基于BlueZ的C语言BLE蓝牙编程)

【全志T113-S3_100ask】12-3 Linux蓝牙通信实战(基于BlueZ的C语言BLE蓝牙编程 背景(一)获取BlueZ源码(二)首次编译2-1 编写Makefile2-2 make编译2-3 首次测试2-3-1 开发板操作2-3-2 安卓端操作(三)源码分析3-1 程序入口3-2 蓝牙设备名称3-3 GATT服务(四)实战4-1 添加B…...

Java学习之路003——集合

1、 代码演示 【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。 【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。 …...

生成和查看dump文件

在日常开发中,即使代码写得有多谨慎,免不了还是会发生各种意外的事件,比如服务器内存突然飙高,又或者发生内存溢出(OOM)。当发生这种情况时,我们怎么去排查,怎么去分析原因呢? 1. 什么是dump文…...

K8S集群1.24使用docker作为容器运行时出现就绪探针间歇性异常

文章目录1. 环境介绍2. 异常信息3. 分析问题3.1 kubernetes 健康检查3.1.1 存活探针3.1.2 就绪探针3.1.3 启动探针3.2 检测方法4. 解决办法1. 环境介绍 组件版本kubernetes1.24.2docker18.03.1-cecri-docker0.2.6 2. 异常信息 最近监测到 kubernetes 集群上 calico-node Pod 运…...

士大夫身份第三方水电费第三方

package com.snmocha.snbpm.job;import org.springframework.stereotype.Component;import com.xxl.job.core.handler.annotation.XxlJob;import lombok.extern.slf4j.Slf4j;/*** Demo定时任务.* Author:zhoudd* Date:2023-01-15*/ Component Slf4j publ…...

RDO一体化部署OpenStack

RDO一体化部署OpenStack 环境准备 安装centos7 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J785hZvT-1677578418769)(C:\Users\HONOR\AppData\Roaming\Typora\typora-user-images\image-20230228171254675.png)] 使用vmware安装安装centos7&a…...

CC2530+ESP8266使用MQTT协议上传阿里云的问题

ATMQTTPUB<LinkID>,<"topic">,<"data">,<qos>,<retain>LinkID: 当前只支持 0 topic: 发布主题, 最长 64 字节 data: 发布消息, data 不能包含 \0, 请确保整条 ATMQTTPUB 不超过 AT 指令的最大长度限制 qos: 发布服务质量, 参…...

Java基础:爬虫

1.本地爬虫 Pattern:表示正则表达式 Matcher:文本匹配器&#xff0c;作用按照正则表达式的规则去读取字符串&#xff0c;从头开始读取。在大串中去找符合匹配规则的子串。 1.2.获取Pattern对象 通过Pattern p Pattern.compile("正则表达式");获得 1.3.获取Matc…...

纯手动搭建大数据集群架构_记录008_搭建Hbase集群_配置集群高可用---大数据之Hadoop3.x工作笔记0169

首先准备安装包 然后将安装包分发到集群的其他机器上去 然后因为运行hbase需要zookeeper支持,所以这里首先要去,启动zk 走到/opt/module/hadoop-3.1.3/bin/zk.sh 然后 zk.sh start 启动一下,可以看到启动了已经 然后zk.sh status 可以看zookeeper的状态 然后我们再去启动一下…...

Linux系统认知——驱动认知

文章目录一、驱动相关概念1.什么是驱动2.被驱动设备分类3.设备文件的主设备号和次设备号4.设备驱动整体调用过程二、基于框架编写驱动代码1.驱动代码框架2.驱动代码的编译和测试三、树莓派I/O口驱动的编写1.微机的总线地址、物理地址、虚拟地址介绍2.通过树莓派芯片手册确定需要…...

Spring boot装载模板代码并自动运行

Spring boot装载模板代码涉及的子模块及准备省心Clickhouse批量写JSON多层级数据自动映射值模板代码生成及移交控制权给Spring IOC涉及的子模块及准备 最近比较有空&#xff0c;之前一直好奇&#xff0c;提交到线上考试的代码是如何执行测试的&#xff0c;在实现了基础的demo后…...

全国领先——液力悬浮仿生型人工心脏上市后在同济医院成功植入

2023年2月22日&#xff0c;华中科技大学同济医学院附属同济医院&#xff08;同济医院&#xff09;心脏大血管外科团队举办了一场气氛热烈的小规模庆祝活动&#xff0c;魏翔主任、程才副主任、王星宇副主任医师和李师亮医师到场&#xff0c;为终末期心衰患者黄先生“庆生”&…...

基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

云原生周刊:开源漏洞仍然是开发人员面临的挑战 | 2023.2.27

Synopsys 发布了最新一期的开源安全年度报告&#xff0c;开源安全和风险分析 (OSSRA)。这份报告由Synopsys 网络安全研究中心 (CyRC)创建&#xff0c;着眼于 Black Duck 审计服务团队进行的 1,700 多次商业代码库审计的结果。 自 2019 年以来&#xff0c;OSSRA 所有 17 家企业…...

Docker学习总结

1、镜像操作 1.1 拉取、查看镜像 步骤一&#xff1a; 首先去镜像仓库搜索nginx镜像&#xff0c;比如[DockerHub]( Docker Hub Container Image Library | App Containerization ) : 步骤二&#xff1a; 根据查看到的镜像名称&#xff0c;拉取自己需要的镜像 通过命令&…...

Android 9.0系统源码_通知服务(三)应用发送状态栏通知的流程

前言 应用发送一个显示在状态栏上的通知&#xff0c;对于移动设备来说是很常见的一种功能需求&#xff0c;本篇文章我们将会结合Android9.0系统源码具体来分析一下&#xff0c;应用调用notificationManager触发通知栏通知功能的源码流程。 一、应用触发状态栏通知 应用可以通…...

python中的序列——笔记

一、介绍 ABC语言时一个致力于为初学者设计编程环境的长达十年的研究项目。 Python也从ABC那里继承了用统一的风格去处理序列数据这一特点。不管是哪种数据结构&#xff0c;字符串、列表、字节序列、数组、XML元素&#xff0c;抑或是数据库查询结果&#xff0c;它们都共用一套…...

taobao.user.seller.get( 查询卖家用户信息 )

&#xffe5;开放平台基础API必须用户授权 查询卖家用户信息&#xff08;只能查询有店铺的用户&#xff09; 只能卖家类应用调用。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 点击获取key和secret请求示例…...

POV-RAY入门指南 - 从零开始掌握光线追踪(1)

1. 初识POV-Ray&#xff1a;光线追踪的艺术 第一次打开POV-Ray时&#xff0c;我被它生成的金属球反射效果震撼到了——桌面上那个虚拟球体竟然能精确反射出周围环境的每处细节&#xff0c;连窗框的倒影都清晰可见。这种基于物理的光线追踪技术&#xff0c;正是好莱坞大片特效的…...

手把手教你部署DeepSeek-R1:纯CPU环境搭建逻辑推理AI全攻略

手把手教你部署DeepSeek-R1&#xff1a;纯CPU环境搭建逻辑推理AI全攻略 1. 从零开始&#xff1a;为什么你需要一个本地推理引擎 想象一下这个场景&#xff1a;你正在处理一份包含敏感数据的文档&#xff0c;需要AI帮你分析逻辑关系&#xff0c;但公司规定数据不能上传到云端。…...

LangFlow实战案例:如何用拖拽方式搭建智能写作助手

LangFlow实战案例&#xff1a;如何用拖拽方式搭建智能写作助手 1. 引言&#xff1a;为什么选择LangFlow 在AI技术快速发展的今天&#xff0c;大语言模型已经展现出强大的文本生成能力。然而&#xff0c;对于大多数非技术背景的内容创作者来说&#xff0c;直接调用API或编写复…...

告别重复造轮子:用快马AI一键生成极客日报的高效数据管道代码

告别重复造轮子&#xff1a;用快马AI一键生成极客日报的高效数据管道代码 作为一个技术资讯类应用的开发者&#xff0c;我深知数据管道的搭建有多耗时。从内容抓取到清洗处理&#xff0c;再到分类归档&#xff0c;每个环节都需要大量重复性编码。最近尝试了InsCode(快马)平台的…...

S32K144新手避坑指南:用S32DS for RAM配置GPIO输入输出,别再搞错推挽使能了

S32K144 GPIO配置实战&#xff1a;从原理到避坑的完整指南 第一次接触NXP S32K144的开发者&#xff0c;往往会在GPIO配置这个看似简单的环节栽跟头。特别是当你在调试按键检测或传感器信号读取时&#xff0c;明明硬件连接正确&#xff0c;代码逻辑也没问题&#xff0c;可就是无…...

基于STM32G431的IF强拖+双DQ空间切换代码及流程详解

基于stm32g431的if强拖 双dq空间切换代码&#xff0c;有论文支持&#xff0c;主要包含以下流程&#xff1a; 1、转子预定位&#xff1b; 2、升速阶段&#xff1b; 3、恒速阶段&#xff1b; 4、iq下降阶段&#xff0c;准备切入闭环&#xff1b; 代码配置部分由cube生成&#xf…...

Audacity:5分钟快速掌握免费音频编辑的终极指南

Audacity&#xff1a;5分钟快速掌握免费音频编辑的终极指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 想要专业级的音频编辑能力却不想支付高昂的费用&#xff1f;Audacity正是你寻找的解决方案&#xff01;…...

PEV2核心源码解析:深入理解执行计划解析与渲染机制

PEV2核心源码解析&#xff1a;深入理解执行计划解析与渲染机制 【免费下载链接】pev2 Postgres Explain Visualizer 2 项目地址: https://gitcode.com/gh_mirrors/pe/pev2 Postgres Explain Visualizer 2&#xff08;PEV2&#xff09;是一款强大的PostgreSQL执行计划可视…...

MailHog终极指南:如何快速搭建本地邮件测试环境

MailHog终极指南&#xff1a;如何快速搭建本地邮件测试环境 【免费下载链接】MailHog Web and API based SMTP testing 项目地址: https://gitcode.com/gh_mirrors/ma/MailHog MailHog是一款基于Web和API的SMTP测试工具&#xff0c;能够帮助开发者在本地快速搭建安全高效…...

Qwen-Image效果实测:对比传统模型,看看它的中文理解强在哪

Qwen-Image效果实测&#xff1a;对比传统模型&#xff0c;看看它的中文理解强在哪 你有没有试过用AI画图&#xff0c;结果被它“气”到哭笑不得&#xff1f;比如&#xff0c;你想画一个“穿着旗袍的女士在江南水乡的乌篷船上喝茶”&#xff0c;结果AI给你生成一个“穿着船在喝…...