AI小西
热门搜索
1847工业学习平台3RW常见问题目录V90 EPOS控制功能及常见问题与电脑连接压力仪表资料汇总3SB3退市声明

签到有奖

  • 移动端入口

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

消息提醒

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

运维工程师专区

官方商城

  • 西门子中国
  • 技术支持与服务首页
    我的支持中心
    下载中心首页
    全球技术资源
    1847工业学习平台
    产品入门新手必读
    找答案
    技术论坛
    售后服务
    网络资源新手必读
    高级搜索
  • 技术论坛
    论坛公告
    论坛使用指南
    最新发帖
    精华帖
    分享帖
    高赞帖
    热门帖
    高端推荐帖
    最高收藏帖
  • 谈天说地 / 谈天说地
  • 【PLC实操技巧】-- PLC完成轻IT任务

技术论坛

 • 产品分类
自动化系统
  • 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 合作伙伴专区

【PLC实操技巧】-- PLC完成轻IT任务

yang9188

西门子1847工业学习平台

  • 帖子

    42
  • 精华

    2
  • 被关注

    19

论坛等级:游侠

注册时间:2020-08-31

钻石 钻石 如何晋级?

【PLC实操技巧】-- PLC完成轻IT任务

1502

3

2025-09-18 13:30:11


PLC实现轻IT任务

            2025.09

1.          前言

    随着PLC处理能力和通讯能力得到长足发展,PLC也可以完成一些前辈们不可能完成的工作,比如轻型IT的任务。

    

2.           什么是轻IT任务

    SECS通讯软件就是典型的轻IT任务。

    SECS通讯由美国国家半导体产业协会(SEMI)制定。几十年来SEMI发布了众多通讯协议文件,这些协议文件组成了体系完整的协议族,称为SECS协议。SECS协议跨越了从RS232时代到工业以太网时代。

    SECS通讯软件运行在生产设备端,是生产设备与工厂IT系统的一种通讯接口。这个通讯接口可以完成生产设备与工厂IT系统之间的数据传输。通过这些数据传递实现生产数据上传、数据跟踪、设备远程控制、设备参数设定、设备模式管理、设备物料管理、配置报告、事件收集、终端服务等功能。由于其强大的功能,SECS通讯已经长期和广泛的应用在半导体生产领域。伴随着半导体的生产收集了大量的数据,并在这些数据分析的基础上改进半导体生产工艺从而提升半导体良品率和探索更先进的生产制成。可以讲没有SECS通讯就没有当前半导体行业的蓬勃发展。SECS通讯在半导体行业的成功激励了更多行业使用SECS通讯助力工厂数字化转型。

    SECS通讯的功能强大和复杂性自然带来一个问题,就是SECS通讯软件编程比较复杂。传统实现SECS通讯的方法是在工控机上使用高级语言进行软件开发。不过这又带来新问题,负责SECS通讯的SECS计算机与负责控制生成设备的PLC之间必然产生或多或少的脱节,这就不能完成SECS通讯的系统软件,只能完成SECS通讯的应用软件。

    能不能用PLC实现SECS通讯的设备端系统软件呢?这样做带来的好处是可以将控制设备的任务与SECS通讯的任务进行无缝衔接。笔者尝试在博途环境下用1500的高级语言SCL编写完成SECS系统软件的开发。效果很好,由此我联想到现在的高性能PLC都可以完成类似SECS通讯这样的轻型IT任务。


3.           主旨

    之前有一篇专门介绍SECS通讯的文档。那篇文档围绕着实现SECS系统通讯展开讨论。在SECS系统软件项目中,编程总计上万行文本代码,从这些代码中得取一些经验具有普遍性,    本篇侧重将PLC实现轻IT任务的普遍性进行讨论。


4.           文本语言与梯形图

    现在的PLC都有文本编程语言,比如SCL语言。这是一种高级语言,具有现代编程语言的全部特征。PLC实现轻IT任务主要靠文本语言。这是因为IT任务大多具有触发才执行的特性。而传统的LAD语言的特性是始终执行。文本语言可以满足触发执行的特点。


5.           日志功能

    IT软件调试是一个困难的工作,难在一些状态的变化只在毫秒级别,很难观察到。为了方便分析问题,软件需要日志功能,记录IT系统软件在瞬间都接收到了什么消息,发送了什么消息,软件自身都做了什么。有了日志功能方便分析问题,查找问题,解决问题。



    上图是SECS系统软件项目中的一个日志片段,记录了从23秒114毫秒到639毫秒跨越500ms的日志。PLC在500毫秒内发送和接收了7次消息对,更新了3次SECS变量。从日志中分析出PLC做出的每个动作都是正确的,符合SECS通讯协议。

    这里简单介绍日志代码的执行步骤:首先,将软件各个模块发送到日志池中的日志进行暂存。然后加入时间等信息作为存入日志池中的信息。第二步,将之前的信息向后挪移一个日志单位,将最新的日志信息存入日志池中的最新的位置。从程序处理的方法上看,日志是一个典型的FIFO队列。

    日志功能的代码也是一个典型的事件触发的代码。大多数时间段不会触发这段代码,只有当需要记录日志时刻才执行这段代码。这也是IT任务的一个重要特征。


6.           IT任务的增、删、改、查功能

    轻IT任务也是IT任务,那么任务中就避免不了对数据条目的“增、删、改、查”的功能。

    在SECS系统软件中,用到的增删改查的功能比较多,这里简单介绍数据追踪功能中的增删改查。厂级IT系统向本机下发数据追踪的请求。请求中包含了数据追踪的必要信息:数据量、发送频率、发送数量等信息。本机收到该信息后,就在PLC中生成了一条数据追踪条目。该条目还可以由厂级IT系统更改、删除。在执行完该追踪条目后由本机自行删除。

    实现这样的功能离不开数组,也离不开遍历数组这样的代码。FOR循环语句是实现遍历数组功能的必然的选择。


7.           IEC Timer的使用

    SCL编程中的IEC定时器的使用习惯与LAD中IEC定时器的使用习惯不同。在IT任务中,由于SCL代码大多数时段并不运行。但是在LAD语言中,通常情况,代码是始终运行的,那么每个扫描周期都可以扫描IEC定时器。但是在SCL中,并不是每个周期都扫描到IEC定时器。如何解决呢?

    我们无需担心。博图在1500和1200中对定时器的扫描机制做了调整。在300/400时代,程序只有在执行调用定时器语句时才会刷新定时器的时间。但在1X00时代,将这个刷新机制做了调整,PLC的编译系统会在访问定时器任意对象的代码位置隐性插入刷新定时器的时间的代码。这种刷新机制对于在SCL语言中使用定时器特别友好,也可以说是为了专门适配SCL语言而做改动。


8.           VARIANT类型

    IT任务中经常用到VARIANT类型,比如在SECS系统软件中需要定义一些变量,下图是定义EC变量的例子


    块中的EC引脚数据类型是VARIANT类型。这个类型的好处是可以将任意类型拖拽到EC引脚。在块内,通过程序分辨EC引脚的变量类型,并根据分辨出的不同类型进行不同的处理。这一套处理方式已经成为了处理VARIANT类型变量的定式。


9.           SCL块的ENO

    如果SCL块的ENO设为自动,那么所调用的语句或者运算如果出现异常,该处的ENO会被操作系统设置为0。

    在用LAD语言或者SCL语言编写的程序块中,可以在块的结尾处通过SCL语句控制程序块的ENO。比如:

        ENO := TRUE; 或者
        ENO := FALSE;


10.      递归算法

    IT任务中可能用到递归算法,比如SECS通讯中的数据是有层级结构的,SECS系统软件需要检查收到的SECS数据。SECS中的数据格式不是SECS协议规定死的。这就带来一个问题,以何为依据进行检查?SECS协议规定上一级数据必须包含本层级数据的数量的信息。检查算法就以此为依据。但是SECS协议中包含多达上百种消息,每一种消息结构都不一样,即使同一个消息,数据结构也可能不一样的。因此无法用普通算法实现对SECS数据的检查功能。

    SECS数据的层级结构类似于套娃,拨开一层数据后才知道下一层数据结构。为此只能用递归算法实现SECS数据的检查功能。好在SCL语言以及博图环境支持递归算法。

    递归算法中要注意嵌套的深度不要超过PLC允许的最大嵌套深度。


11.      分解复杂的IT任务到多个扫描周期

    PLC执行IT任务特别需要注意一点。不能使得PLC扫描周期过长。如果执行某个任务需要若干秒的时间,那么这是不可接受的。这是由于PLC还要完成对设备的控制任务。设备控制任务的扫描周期不宜超过几十毫秒。

    为此,必须巧妙的将需要花费长时间运行的IT任务分解到多个扫描周期中。SCL语言可以通过多种流程控制语句较容易的实现这一点。


12.      面向对象的思想

    虽然当前博图编程PLC是结构化环境,但是既然STEP7中有FB的存在,就事实上有面向对象的编程基因。另外,UDT类型+程序块的IN-OUT引脚完成的是对数据指针的传递。有这2样法宝,在博图环境下实现一些简单的面向对象的编程是不难的。IT任务中应该从一开始就用面向对象的思路进行编程。这样做的好处是把一些复杂的问题简单化,让思路更清晰。

    如果未来博图对PLC的编程能把函数指针开放,那么会带来更大的编程灵活性。


13.      结束语

    工业自动化领域发展到当今的水平,智能制造方兴未艾,PLC承担轻IT任务必然成为趋势。SECS系统软件的开发工作证明在博图环境下完全能支撑在PLC中实现开发轻IT任务,并且轻IT任务可以与设备的控制任务实现完美无缝衔接。

    本文基于半导体设备通信标准(SECS)系统软件开发实践,抽取项目开发过程中的一些内容,针对PLC实习轻IT任务进行了经验分享与总结。文中所述观点及实践方法可能存在疏漏,恳请业界同仁不吝指正。



    各位亲爱的同行,您对PLC实现IT任务有什么看法,也请在此发表高见。

    如果您觉得本篇有帮助,请点击下方“有帮助”。您的肯定是我分享动力。



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

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

上传附件要求

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

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

 
发分享帖
爱工控,乐分享,
分享您的经验与案例
发故事
发表您的精彩故事,
参与征文活动
技术探讨帖
阐述您的观点,
表达我的看法
西家杂谈
海侃天南地北,
闲聊工控世界
发求助帖
求道解惑,“刨根问底”
解决问题
发投票帖
邀投票,做调查,
网友帮您来作主
取消原因:
【PLC实操技巧】-- PLC完成轻IT任务
编辑推荐: 关闭

请填写推广理由:

活动公告 查看全部公告>

AI 小西智伴登场,7×24 小时权威支援,让技术支持告别等待!

1,830,732 条
海量精彩技术内容

100,000+ 网友与你交流

助你技有所长,论有所获

热门视频,猜你喜欢

本版热门话题

谈天说地

共有13237条技术帖

更多

评选标准

相关推荐

换一换

热门标签

换一换

相关帖子推荐

换一换
正在加载...
guzhang

恭喜,你发布的帖子

被评为精华帖!

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

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

  • 分享

  • 只看
    楼主

top

下载中心

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

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

1847工业学习平台

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

培训与认证

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

技术论坛

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

找答案

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

售后服务

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

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

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

欢迎您访问支持中心!

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

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

感谢您的支持!

您收到0封站内信:
×
×
图片
立即
签到
已签到
已签到0天
累计可抽西币次数:0次抽奖机会
累计可抽大奖次数:0次抽奖机会
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。