AI小西
热门搜索
1847工业学习平台售前选型产品信息过程调节器选型选型3RT1(95A以下)产品退市声明

签到有奖

  • 移动端入口

  • 工业服务小程序
  • 支持中心移动端首页
  • AI小西-AI智能问答助手
  • SIEMENS工业找答案小程序
  • 工业培训与认证
  • 西门子工业1847俱乐部
  • SIEMENS工业技术支持与服务
@CurrentUser.EmailCount@

消息提醒

登录 | 注册
@CurrentUser.NickName@
1847会员:未开通
VIP等级 @CurrentUser.vipLevel@
西币
@CurrentUser.coin@
  • 我的支持中心
  • 我的1847会员
  • 我的技术论坛
  • 我的找答案
  • 我的下载中心
  • 我的售后服务
  • 我的培训认证
  • 我发的帖子
  • 我跟的帖子
  • 我的论坛设置
  • 论坛用户指南
  • 我的下载中心
  • 我的培训认证
  • 我的提问
  • 我的回答
  • 已经帮助了@CurrentUser.allAnswercount@人我要回答
  • 已连续活跃@CurrentUser.allLoginDayCount@天我要提问
  • 首次回答问题获得双倍西币积分
  • 个人设置
  • 退出
  • 首页
  • 技术支持
    • 技术支持
    • AI小西
    • 风驰卡
    • 产品入门
    • 在线产品选型
  • 售后服务
    • 售后登记和质保查询
    • 备件商城
    • ASP工程师验证
    • ASP公司证书验证
    • 售后服务常见问题
  • 下载中心
    • 首页
    • 售前文档(样本、宣传册等)
    • 售后文档(FAQ、手册等)
  • 工业学习平台
    • 首页
    • 了解会员权益
    • 立即开通1847会员
    • 标准机型应用中心
  • 培训认证
    • 首页
    • 教室培训课
    • 取证训练营
    • 在线自学课
    • 认证证书查询
    • 培训伙伴验证
  • 技术论坛
    • 首页
    • 最新发帖
    • 精华帖
    • 发新帖
  • 找答案
    • 首页
    • 已解决问题
    • 精华常见问题
    • 发布新问题

官方商城

  • 西门子中国
  • 技术支持与服务首页
    我的支持中心
    下载中心首页
    全球技术资源
    1847工业学习平台
    产品入门新手必读
    找答案
    技术论坛
    售后服务
    网络资源新手必读
    高级搜索
  • 技术论坛
    论坛公告
    论坛使用指南
    最新发帖
    精华帖
    分享帖
    高赞帖
    热门帖
    高端推荐帖
    最高收藏帖
  • 自动化系统 / SIMATIC S7-1200系列
  • 0517 【万泉河】PLC变量命名规范与程序架构设计实践

技术论坛

 • 产品分类
自动化系统
  • SIMATIC S7-1500系列 
  • SIMATIC S7-1200系列 
  • SIMATIC S7-200
  • SIMATIC S7-200 SMART 
  • SIMATIC S7-300/400 
  • 通信与网络组件
  • Profinet技术开发专区
  • 工业边缘计算
  • SIMATIC WinCC / Panel 
  • SIMATIC WinCC OA (原PVSS)
  • DCS/SIMATIC PCS7
  • IPC/PG
  • LOGO!
  • 物联网(IOT)
  • 工业电源
驱动技术
  • SINAMICS 
  • SINAMICS S200 
  • 直流调速器
  • 电机
  • SIMOTION
  • MicroMaster
  • 驱动技术综合产品
  • MasterDrives 
  • DCMA 变频器健康管家 维护智库
数控系统
  • SINUMERIK 
  • SIMODRIVE
低压电气
  • 低压电气
  • 低压数字化
传感器与通讯
  • 过程仪表
  • 分析仪器
  • 工厂传感器
谈天说地
  • 谈天说地
 • 咱工程师的故事
咱工程师的故事
  • 网友专栏 
  • 工程师随笔
1847大咖专栏
  • 崔工谈博途与PLC
  • PROFINET工业通信详解
  • 冯工聊工业网络
  • 电磁兼容问题及处理
  • 大咖专栏合集
特别专题
  • 专家大讲堂课后探讨
  • 西门子工业1847俱乐部
  • 特别专题合集
 • 培训与认证答疑专区
培训与认证答疑专区
  • PLC编程精英训练营
  • MA 小型自动化系统
  • WinCC系统开发工程师精英训练营
  • V90精英训练营
  • WinCC精英训练营
  • S7-1200精英训练营
  • G120变频器精英训练营
  • S7-200SMART精英训练营
 • 服务合作伙伴专区
服务合作伙伴专区
  • FA合作伙伴共创社区
  • Networks and Communication
  • GMC蓝黄带考试-G120
  • GMC蓝黄带考试-V90
  • GMC 合作伙伴专区

0517 【万泉河】PLC变量命名规范与程序架构设计实践

万泉河

西门子1847工业学习平台

  • 帖子

    10922
  • 精华

    132
  • 被关注

    1022

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

0517 【万泉河】PLC变量命名规范与程序架构设计实践

72

0

2026-05-17 09:19:05

0517 【万泉河】PLC变量命名规范与程序架构设计实践

前言

在PLC程序开发过程中,变量命名问题困扰着许多工程师。原本在设计阶段规划好的命名规则,到了实际编写时却越来越混乱。本文探讨变量命名的实用方法及其背后的程序架构设计思路。

一、命名规范的实用方案

1.1 混合命名策略:英文缩写 + 中文描述

针对PLC编程的实际场景,有一种简单高效的命名方法:

一个英文字母 + 中文描述

例如:

缩写

   

含义

   

应用示例

   

ai

   

模拟量输入

   

ai温度、ai压力

   

ao

   

模拟量输出

   

ao阀门开度

   

di

   

数字量输入

   

di启动按钮、di急停信号

   

do

   

数字量输出

   

do电机启停、do报警灯

   

tm

   

定时器

   

tm延时启动

   

ct

   

计数器

   

ct产品计数

   

i

   

输入参数

   

i设定值、i目标温度

   

o

   

输出参数

   

o实际值、o运行状态

   

x

   

临时变量

   

x中间结果、x计算值

   

这种方法的优势在于:

l  l     英文缩写便于快捷输入

l  l     中文描述语义清晰、易于理解

l  l     统一前缀便于分类检索和批量处理

1.2 功能性参数的命名

对于PID、运动控制等功能块的参数:

场景

   

处理方式

   

积分时间

   

i积分时间

   

微分时间

   

i微分时间

   

设定速度

   

i速度设定

   

实际位置

   

i当前位置

   

关键原则:以物理含义命名,而非照搬国外标准的符号。

1.3 为什么不能强求统一命名规范

在讨论命名规范时,有一种观点认为应当统一采用驼峰命名法、帕斯卡命名法或匈牙利命名法等经典规范。然而,在PLC实际工程中,这种要求往往难以实现,原因如下:

第三方库的命名差异

工程项目中不可避免地要使用第三方库函数,而这些库的管脚命名规则各异:

库来源

   

参数命名示例

   

规则风格

   

西门子官方库

   

Ti、Td

   

缩写式

   

施耐德库

   

TN、TV

   

缩写式变体

   

第三方运动库

   

integralTime、derivativeTime

   

全单词式

   

开源社区库

   

dIntegral、dDerivative

   

前缀式

   

难道因为命名规则不统一,我们就不用这些库了吗?显然不可能。

智能设备的对接需求

现代工程项目中,PLC需要与大量智能设备通信:

l  l     变频器(Modbus通信的参数寄存器)

l  l     智能传感器(自定义数据格式)

l  l     视觉系统(图像处理结果数据)

l  l     工业机器人(厂商特定的指令和数据定义)

这些设备的接口数据定义规则来自各自的供应商,不同厂商的命名规则必然不同。PLC程序必须考虑与这些产品的对接,而非要求对方改变命名来适应我们的规范。

务实对待命名问题

讨论变量命名规范时,关键在于语义清晰、便于维护,而非拘泥于某种特定的命名形式。过度追求形式上的统一,反而会增加不必要的麻烦。

面对实际情况,工程师应当:

1.   1.    接受差异:第三方库和设备的命名是既定事实

2.   2.    灵活适配:在调用处添加中文注释说明含义

3.   3.    封装隔离:通过适配层将外部命名与内部规范隔离开

二、命名混乱的根本原因

2.1 表象与本质

很多工程师抱怨"项目开始时感觉规划很好,项目进行中就乱套了"。然而,命名混乱并非问题的根本原因,而是程序架构设计不合理的表现。

2.2 问题的根源

命名混乱 ← 程序架构混乱 ← 缺乏顶层设计

代码质量的根本问题不在于命名规范本身,而在于程序架构的合理性。当程序架构存在以下问题时,命名必然走向混乱:

l  l     层级职责不清

l  l     模块耦合严重

l  l     接口定义模糊

l  l     重构频繁导致命名不一致

三、程序架构设计原则

3.1 逐层封装的理念

程序应当采用逐层封装的设计思路。FB块和FC块的选用、管脚的设计,这些看似基础的问题,实际上决定了程序的整体结构:

┌─────────────────────────────────────┐
│ 应用层(调用方)                       │
│ "我只管用,不关心内部实现"              │
├─────────────────────────────────────┤
│ 功能层(封装块)                       │
│ "提供简洁、统一的接口"                  │
├─────────────────────────────────────┤
│ 基础层(底层驱动)                     │
│ "处理复杂的硬件细节"                   │
└─────────────────────────────────────┘

3.2 翘空理论与接口设计

FB的管脚设计有一个重要原则:能空着就尽量翘空着。

这一原则深刻揭示了良好封装的核心:

设计原则

   

说明

   

接口简洁

   

只暴露必要的管脚,减少调用者负担

   

内部自治

   

功能在块内部完整实现,不依赖外部变量

   

易于使用

   

调用者只需关注核心参数,无需了解内部细节

   

封装好的块,别人或上层只管用,不会有人质疑它接口定义符合不符合规范,只要求好用,易用,简练。

3.3 良好封装的特征

封装良好的程序模块应具备以下特性:

特性

   

说明

   

表现

   

易用

   

接口简洁直观

   

调用者无需了解内部逻辑

   

简练

   

功能边界清晰

   

一个块做一件事

   

规范

   

命名语义一致

   

内部命名规范统一

   

可移植

   

复用性强

   

换一个项目仍能直接使用

   

3.4 以官方库为参照

观察西门子、施耐德、三菱等主流PLC厂商的库函数:

l  l     PID 功能块的参数命名(Ti/Td 或 TN/TV)

l  l     运动控制库的轴参数命名

l  l     通信功能块的参数定义

这些库函数没有人会质疑其命名规范与否,原因在于:

1.   1.    功能定义清晰 - 接口即语义

2.   2.    文档完善 - 参数含义明确

3.   3.    使用便捷 - 调用方式统一

4.   4.    无需修改 - 调用者只需适配,无需改名

这正是良好封装的示范:接口定义符合使用习惯,而非追求"命名规范"。

四、实践建议

4.1 项目启动阶段

1.   1.    搭建架构框架

1.     (1)确定程序层级结构

2.     (2)定义模块边界和接口

3.     (3)制定统一的命名规范文档

1.   2.    建立项目模板

1.     (1)标准的功能块结构

2.     (2)统一的变量命名规则

3.     (3)规范的注释模板

4.2 编码执行阶段

1.   1.    遵循既定规范

1.     (1)前缀统一(ai、ao、di、do、tm等)

2.     (2)语义明确(避免单个字母或无意义名称)

3.     (3)层次分明(通过命名体现变量归属)

1.   2.    保持封装意识

1.     (1)一个功能块只负责一个功能

2.     (2)对外接口尽量简化

3.     (3)内部实现对调用者透明

4.3 与第三方库和设备对接时

l  l     接受既定命名:第三方库和设备的参数名是事实标准,无需强行统一

l  l     添加注释说明:在调用处用中文注释解释参数的物理含义

l  l     封装适配层:通过适配层将外部命名与内部规范隔离,对外保持原样,对内使用统一规范

五、总结

PLC变量命名规范的核心要点:

层面

   

建议

   

命名层面

   

采用"英文缩写+中文描述"的命名法,兼顾输入效率和可读性

   

兼容性层面

   

接受第三方库和设备的命名差异,通过适配层隔离

   

架构层面

   

做好程序顶层设计,采用逐层封装的模块化结构

   

态度层面

   

追求"好用、易用、简练",而非刻意的"命名规范"

   

实践层面

   

项目启动时先搭架构,项目进行时遵循规范,遇到差异时灵活适配

   

 

核心要点回顾

1.   1.    命名规范不是根本:好的程序架构是命名规范的根基,而命名规范是程序架构的外在体现

2.   2.    封装优于规范:遵循"翘空"原则,追求接口的简洁易用

3.   3.    务实对待差异:工程项目中不可避免地要使用第三方库和智能设备,强求统一命名规范既不现实也无必要

。

0517 【万泉河】PLC变量命名规范与程序架构设计实践.pdf


剩余80%未阅读, 请登录阅读

回帖加入探讨技术论坛守则

上传附件要求

1. 文件大小:上传文件的大小请限制在2M以内。

2. 文件格式:请不要上传.exe文件,系统支持的格式有:
.avi,.wmv,.mp3,.rar,.zip,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.wma,.asf,.txt,.7z

 
发分享帖
爱工控,乐分享,
分享您的经验与案例
发故事
发表您的精彩故事,
参与征文活动
技术探讨帖
阐述您的观点,
表达我的看法
西家杂谈
海侃天南地北,
闲聊工控世界
发求助帖
求道解惑,“刨根问底”
解决问题
发投票帖
邀投票,做调查,
网友帮您来作主
取消原因:
0517 【万泉河】PLC变量命名规范与程序架构设计实践
编辑推荐: 关闭

请填写推广理由:

活动公告 查看全部公告>

【热门学习中】前沿技术专题:西门子工业新产品新功能新技术

1,869,624 条
海量精彩技术内容

100,000+ 网友与你交流

助你技有所长,论有所获

热门视频,猜你喜欢

本版热门话题

SIMATIC S7-1200系列

共有15668条技术帖

更多

评选标准

相关推荐

换一换

热门标签

换一换

相关帖子推荐

换一换
正在加载...
guzhang

恭喜,你发布的帖子

被评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片

下载中心

  • 首页
  • 查找文档
  • 常见问题大全
  • 精选主题
  • 全球技术资源

  • 首页
  • 知识库
  • 订阅文档

1847工业学习平台

  • 首页
  • 了解会员权益
  • 立即开通1847会员
  • 课程中心
  • 学习路线
  • 初级工程师认证
  • 高级工程师认证

培训与认证

  • 首页
  • 教室培训课
  • 取证训练营
  • 在线自学课
  • 认证证书查询
  • 培训伙伴验证

技术论坛

  • 首页
  • 发帖
  • 最新发帖
  • 精华帖
  • 高赞贴
  • 当前热门帖
  • 高端推荐帖
  • 用户荣誉榜

找答案

  • 首页
  • 提问
  • 精华问答
  • 高赞问答
  • 新解决问题
  • 待解决问题
  • 总积分排行榜

售后服务

  • 我要报修
  • 服务进度查询
  • 质保及权益查询
  • 备件商城
  • ASP工程师验证
  • ASP公司证书验证
  • 支持中心网站重要声明

西门子中国   © 西门子(中国)有限公司 1996 – 2026   企业信息    隐私政策   使用条款   京ICP备06054295号   京公网安备 11010502040638号
 
支持中心新发布“关注”功能了!实时查看彼此动态,更方便地进行技术交流。
不管是“关注”与“被关注”,相信都是一个美好的开始!
还有多重奖励派送,快快行动起来吧!

20秒帮我们优化支持中心!

欢迎您访问支持中心!

丰富的视频,全方位的文档,大量的网友交流精华……

为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!

感谢您的支持!

您收到0封站内信:
×
×
西门子工业找答案 “劳”有所得,“问”有所获 致敬劳动者问答有奖活动
立即
签到
已签到
已签到0天
累计可抽西币次数:0次抽奖机会
累计可抽惊喜实物奖次数:0次抽奖机会
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。