0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PLC S7-200的子程序应该如何修改详细技巧说明

sBue_gongkongBB 来源:未知 2019-08-11 09:54 次阅读

S7-200的子程序SUB,一旦写好,用在程序中之后, 是不可以修改其输入输出管脚的。 因为你一旦动了管脚接口,调用这个子程序的地方,就会报错。

报错以后还没法和STEP7一样可以通过更新只更新改动部分。正常处理的只有把原本的调用删掉,从头重新调用,并为每个接口逐个分配变量。

这相当讨厌。

比方说我一个底层的设备,如果调试中发现需要增加些功能,实在不可避免决定要增加接口。而我主程序中已经对这个设备调用了几十次,那就必须几十个实例都重来一遍。

而这还不算完。

谁敢保证这一次接口的变更就是最后一次了呢?下一次如果还需要修改,就需要原样再来一次。

估计换谁,都受不了这种折腾。

而这也是标准化编程的大忌。

貌似许多人对标准二字有误解,看到我提出的标准化,就有些不服气。你万某有何德何能提出标准,俺们智力才艺都不比你差,凭什么要遵循你提出的标准,凭什么用你的标准而不是我自己的标准?我们国家历史上因为技术标准落后一步而受制于人,吃的亏大了去了。可不能重蹈这样的覆辙!

而另外有一些人,则强调没有办法做到整齐划一的标准。理由是设备配置千差万别,没有一模一样的设备,所以做不到标准化。

错啦!都是属于对标准化的误解。我们追求的标准化,是把系统做成搭积木一样的标准模块,每个模块自成体系,逻辑互不干扰。通过接口与其他系统模块对接,不同的系统设计,在接口不变的情况下,只需要更换相应的模块,即可以实现快速组装。

而接口,也不是一尘不变的,可以根据需要随时改进,而在接口改动的时候,也只是对接的模块之间局部变更,不要影响到整个系统。不会因为接口的改动,而需要系统重新调试。

甚至,我现在推广了二期标准化示例项目之后,下一步的计划就是对接口的优化升级。过去,我在开发阶段,采用的接口只是借用的别人以前做的,现在终于有精力,腾出手来,把接口改造为我满意的样子。

而我和我的团队成员,丝毫不需要担心接口的更改会导致影响到已有逻辑模块的运行,甚至带来bug。

这就是标准化设计的优势。心不累。不需要和以前一样,程序中改动一点点就紧张万分,就担心把整个系统原本正常运行的功能搞崩溃。

所以,我在开发SMART 200标准化架构的时候,首先就意识到子程序(库函数)接口不能更改的这个问题很严重。并认为有可能是众多人都不愿意投入精力在SMART 200系统做标准化的主要原因。

所以首当其冲必须解决这个问题。

而实现方法,其实很简单。

即利用程序块的导出功能,把调用被改动的子程序导出为AWL的文本文件:

然后在文本文件的调用中,修改到符合新版本的函数的语法,再重新导入即可。

这里存在的问题是,不管是导入还是导出,操作之前软件都会自动编译,编译通过后才可以进行。所以导出必须在修改接口之前,而在修改接口之后,导入之前,需要把相应的SUB内发红的段落先删除。

因而实时的存盘备份非常重要。千万不能上来就改接口改子程序的逻辑,改过之后发现既不能导出又不能导入,那就尴尬了。

由于AWL文件中是绝对值寻址的,所以界面非常不够友好。我通常是在文本修改阶段,只管语法正确,比如增加的数值变量,就先填上AC0,如果是离散变量,则暂时输入L0.0,等导入成功之后,在梯形图界面下,根据实际需求,更改为正确的变量。

当然啦,如果有可能,尽量直接用搜索替换比如把原有的”AC0”替换为“AC0,AC0”。速度会快很多。

所以,在使用标准规范中也包含了同一个类型的设备对象,尽量在同一个SUB中调用。这样导出修改接口的时候只搞这一个文件即可。而不必在整个程序范围去找,去把整个程序的SUB都导出来手工修改。

那样儿,仍然会很累。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5006

    文章

    13091

    浏览量

    461291
  • 接口
    +关注

    关注

    33

    文章

    8435

    浏览量

    150685
  • S7-200
    +关注

    关注

    13

    文章

    407

    浏览量

    50269

原文标题:【万泉河】S7-200 SMART 子程序修改技巧

文章出处:【微信号:gongkongBBS,微信公众号:工控网智造工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    S7-200西门子PLC视频教程大全

    以下是西门子S7-200PLC视频教程,全文共有36个视频。详细介绍了西门子S7-200PL的各种概念,基础的知识,及各案例的讲解。 1、S7-200西门子
    发表于 09-26 09:15 12w次阅读

    S7-200简单模拟量编程程序

    西门子S7-200简单模拟量编程范例,西门子S7-200简单模拟量编程范例,TITLE=//子程序1:数据采集部份
    发表于 06-21 12:02 9938次阅读

    S7-200模拟器使用说明

    软件模拟了西门子S7-200PLC 的部份工作特性,但并不保证与真实的PLC 完全一致。为了得到正确的结果,必须使用西门子公司的S7-200 系列
    发表于 02-06 15:24 82次下载
    <b class='flag-5'>S7-200</b>模拟器使用<b class='flag-5'>说明</b>

    s7-200编程使用指南_PLC原理及应用

    s7-200编程使用指南_PLC原理及应用。
    发表于 11-20 12:06 0次下载

    S7-200 PLC(下位机)程序_labview程序案例

    程序案例 S7-200 PLC(下位机)程序
    发表于 01-12 15:44 30次下载

    S7-200主从站通讯例子程序

    介绍了s7-200 modbus主、从站例子程序程序简单易懂大家交流学习
    发表于 01-20 15:55 5次下载

    s7-200模拟量处理子程序

    s7-200模拟量处理子程序,介绍西门子200模拟量处理程序的源代码
    发表于 01-20 15:56 11次下载

    S7-200问题

    西门子200系列PLC S7-200的各种使用问题。
    发表于 04-28 14:57 11次下载

    西门子S7-200使用教程

    西门子S7-200 PLC仿真软件超详细使用教程西门子S7-200使用教程
    发表于 05-06 16:43 0次下载

    基于S7-200PLC系统手册

    S7-200系列小型PLC (Micro PLC)可应用于各种自动化系统。紧凑的结构、低廉的成本以及功能强大的指令集使得S7--200 PLC
    发表于 09-25 18:11 28次下载
    基于<b class='flag-5'>S7-200</b>的<b class='flag-5'>PLC</b>系统手册

    PLC S7-200进行发动机控制的实例资料说明

    本文档的主要内容详细介绍的是PLC S7-200进行发动机控制的实例资料说明
    发表于 04-29 08:00 1次下载
    <b class='flag-5'>PLC</b> <b class='flag-5'>S7-200</b>进行发动机控制的实例资料<b class='flag-5'>说明</b>

    S7-200的MODBUS详细应用示例

    S7-200的MODBUS详细应用示例说明
    发表于 04-25 11:13 46次下载

    S7-200 SMART PLC的应用案例

    S7-200PLC或者S7-200 SMART PLC以及三菱FX 3U、5U等等,这些小型PLC相对于大型比较简单,易操作。
    发表于 04-12 08:40 2275次阅读

    西门子S7-200 Smart PLC加密设置全面指南

    本文将详细介绍西门子S7-200 Smart PLC的加密设置方法,帮助用户更好地保护PLC程序的安全。
    发表于 03-27 10:14 9454次阅读
    西门子<b class='flag-5'>S7-200</b> Smart <b class='flag-5'>PLC</b>加密设置全面指南

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现对PLC数据的高效读取和控制。本文将详细介绍如
    的头像 发表于 07-11 11:55 4339次阅读
    <b class='flag-5'>S7</b>协议读取西门子<b class='flag-5'>S7-200</b> Smart <b class='flag-5'>PLC</b>数据