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

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

3天内不再提示

最难还是模拟量

opkgjew 来源:PLC标准化编程 2023-03-25 10:21 次阅读

说句实话,一开始,和大家一样,我对模拟量是不太当回事的。

我现在正在做的把LBP的架构从S7-1500移植到S7-1200,然后再到SMART 200 +KTP触摸屏。做了其它的块,但对模拟量是不在乎的。心里想,自己都有80模拟量的标准答案例程在手了, 就没必要在这方面多花心思了。 需要的时候随时可以拿出来把例程的程序用上快速的很。

所以,就越过了模拟量, 想动手搞PID块的移植。

但却感觉无从下手。 那些参数值设定值和运行值的处理,完全没有感觉。不知道对LBP的PID块该如何解耦,哪些部分改掉换成SMART自己的控制, 哪些部分借用。

所以决定, 还是先把模拟量部分完善了吧!

然而一旦动手开始搞了,才发现这里面的问题反而是最多的。

当然,这里讲到的问题并不是说原本我做的80模拟量的例子错了,或者不够完善,不够标准答案。

那里展示的只是调用的过程。

而我现在在做的就是FB块的处理。 例子里面用到的那个模拟量处理的程序块,功能还是太简单了。

反对把物理单位作为一个参数,还要在触摸屏上运行中或者设计模式进行修改。 然而即便去掉了单位, 对一个模拟量的处理,也还是有许多参数的。

在对LBP的程序块进行简化以后,它需要的参数分别有:

SP_rangeBegin 量程下限
SP_rangeEnd 量程上限
SP_limitAH 高报警
SP_limitWH 高警告
SP_limitWL 低警告
SP_limitAL 低报警
SP_timeout 超时时间
SP_hysteresis 迟滞区间

其中前两者用于标定量程范围, 3-6用于判断触发报警,7-8用于对报警的迟滞处理。

有人或许会觉得啰嗦,就简单标定下量程的事, 搞这么复杂有意义吗?

是的, 如果你还只是刚入门阶段实现控制任务就万事大吉, 有人提出整改意见的时候再专心整改,那确实没啥。

但如果你希望有一个一劳永逸的标准化的设计,但凡客户有可能提出的刁难问题,都提前想到,都事先做在里面,就有必要提前做些准备了。 多做比不做强,做了不用比用到的时候发现没有相应的功能而需要临时打补丁,要强。

比如量程,如果设备运行期间有需要进行校准,那么就会有需求要你给做成参数。 而如果系统中有模拟量不仅仅用于显示,还要参与逻辑判断, 那么多数情况下需要比较限定值后做出逻辑处理,那么就有了限定值参数和迟滞参数的需求。 哪怕系统中只有个别模拟量有需要,也应该尽量全部都做到,即为标准化。

而这些参数值,一方面需要运行中修改设定,另一方面又不可能全部指望下载程序后在运行画面中输入参数。 最理想的方式是,参数需要有一个初始值。 这个初始值未必准确,未必符合最终设备运行需要的参数,但它至少有个八九不离十,大致可用。 总比一开机全部都是0, 全部都是报警提示要好得多。

有过软件开发的程序员都应该了解这样一个常识,所有软件安装后都要有一个初始配置。 比如微信软件安装后,会有基本的字体和配色,然而可以个性化修改设定。

对应到工业系统工业设备,也存在一样的需求。

然而,凡是对PLC编程有一定了解的人,都会知道,这个事情没那么容易。 比如FB的IN管脚上一个参数值,你如果调用时给赋值了实参作为初始值,那么运行中就不再可以修改。 除非修改程序源代码完全重新下载程序。

而如果不给设置实参, 那么它就会以统一的初始值,大部分为0。而且FB的多个实例之间还都是同一套初始值配置。

所以,要兼具上述两种功能的话,上述的参数值其实需要2套,分别对应上述的功能。 那么在程序初次运行时,先采用初始值,而后运行中这个值才可以修改。

对于模拟量信号,后面的3-8条重要程度低一些,甚至可以统一设置,比如限制值都分别设置为90%, 80%, 20%, 10%,总差不多。

然而量程的上下限,则只能分成2套了。

由此,我在SMART 200中规划的模拟量函数库的变量接口表:

978a364e-cab3-11ed-bfe3-dac502259ad0.png

这是已经做到了极致的简化,已经没有再简化的余地了。

然而看到,最后一个变量的地址是LD55, 即用到了LB58,已经接近了SMART子程序的上限。后面只剩下 LB59一个BYTE了。

即地址空间已经用光了,再无空间可用了。

问题就出现在了这里。

我按照LBP的架构功能实现的逻辑,其中有LOG15功能记录了设备的运行记录,最终触摸屏显示这个记录时, 需要这个记录的地址指针。 应该是一个DWORD, 原本是在L1层中生成的,需要输出到其OUT管脚, 外层使用这个管脚获得地址。

然而因为SMART 200的资源限制,我已经穷困到程序块中接收这个地址的TEMP变量都没有了。

所以迫不得已,我只好暂时先用了一个MD20的变量做了传递。

97abf5c2-cab3-11ed-bfe3-dac502259ad0.png

97b91d38-cab3-11ed-bfe3-dac502259ad0.png

我实在是太难了!

因为这一段的功能,是LBP也尚未考虑到的,所以多出来的逻辑还是自己再想办法实现的。

有人会替我担忧我在子程序块中使用了M变量,是否会带来错误,会导致程序块不能被重复调用。 这完全不必担心。 因为再多的对象实例, 使用的同一个变量,用过就丢了,无所谓。

也会有人指责我违背了自己承诺的PLC编程不使用全局变量的规则。 没错,我这儿也难受着呢!

如果不较真,整个程序中仅次一处使用M量,也不伤大雅。 如果较真,以后可以再看看想办法做个场景保存和恢复的功能。

即,打一个补丁处理一下。






审核编辑:刘清

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

    关注

    5

    文章

    437

    浏览量

    25077
  • SMART
    +关注

    关注

    3

    文章

    219

    浏览量

    44408
  • S7-1200
    +关注

    关注

    11

    文章

    329

    浏览量

    17225
  • LBP
    LBP
    +关注

    关注

    0

    文章

    14

    浏览量

    8928
  • S7-1500
    +关注

    关注

    3

    文章

    298

    浏览量

    5850

原文标题:0323 【万泉河】 最难还是模拟量

文章出处:【微信号:PLC标准化编程,微信公众号:PLC标准化编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    模拟量和开关量

    模拟量和开关量 在控制系统中,一个常见的术语就是模拟量和开关量。 不论输入还是输出,一个参数要么是模拟量,要么
    发表于 12-11 11:38 2875次阅读

    PLC初学:PLC的开关模拟量都是什么?都有什么区别?#硬声创作季

    plc模拟量
    电子学习
    发布于 :2022年11月09日 13:23:38

    模拟量检测、定标

    求大神助攻,这个图是起到低通滤波的作用么?左边的黄线接的是8路模拟量输入模块,最右边的蓝线接的是8选1模拟量开关4051芯片,琢磨了一个下午,颗粒无收,求大神指教,小弟不胜感激!(整个控制系统的控制芯片是英飞凌的16位单片机)
    发表于 03-06 16:13

    【IntoRobot Neutron试用体验】ADC 模拟量输入接口测试

    最近天天加班起早摸黑,发帖有点晚。这贴主要测试一下模拟量的输入输出:首先还是找到官方的例子,毕竟刚入门代码还是官方的好,直接复制到自己的工程,本例子不会用到手机APP,主要使用串口助手来显示
    发表于 06-06 23:19

    labview FPGA模拟量信号处理

    我有一个NI的模拟量模块N9217是PT100的模块,现在接上了传感器,请问如何在FPGA程序中做工程的标定,让它直接显示实时的温度,请问有标准的函数吗?还是说要自己编写程序?有例程参考下吗?附件图片是我自己的例子但没有工作
    发表于 12-05 17:28

    Arduino模拟量转换问题

    请问哪位高手使用过Arduino 自带的a/d转换器。目前遇到的问题是模拟量转换结果不停跳变,在模拟量保持为恒定值的情况下,求帮忙解答,急用,谢啦!
    发表于 11-07 17:29

    PLC对模拟量信号是怎么进行处理的?

    模拟量信号是自动化过程控制系统中最基本的过程信号(压力、温度、流量等)输入形式。系统中的过程信号通过变送器,将这些检测信号转换为统一的电压、电流信号,并将这些信号实时的传送至控制器(PLC)。PLC
    发表于 09-05 08:31

    ,回收西门子模拟量输入模块,回收模拟量输出模块,回收模拟量输入输出模块

    ,回收西门子模拟量输入模块,回收模拟量输出模块,回收模拟量输入输出模块回收回收西门子模块回收全新CPU模块触摸屏、专业回​‌‌收西门子plc模块、回收西门子触摸屏、求购西门子模块、触摸屏、伺服电机
    发表于 05-03 22:26

    模拟量与数字量概述

    一、模拟量与数字量概述:如温度、压力、位移、图像等都是模拟量,电子线路中模拟量通常...
    发表于 07-27 06:54

    PLC模拟量输入模块是什么

    PLC模拟量输入模块就是采集电压、电流、热电阻、热电偶或者是温度等模拟量的采集模块,然后再通过总线传输到电脑上的智能模块。其实就是一款将远程现场的模拟量信号采集到计算机的设备,模拟量
    发表于 09-08 07:39

    MCU是如何处理模拟量

    MCU只能处理的是数字量,所以数字量输入----->MCU-------->数字量输出MCU不能直接处理模拟量,所以模拟量输入---->模拟信号处理----->模数转换器
    发表于 11-01 06:24

    模拟量与数字量的相关资料分享

    1模拟量与数字量概述如温度、压力、位移、图像等都是模拟量,电子线路中模拟量通常包括模拟电压和模拟电流,生活用电220V交流正弦波就属于
    发表于 12-09 07:34

    怎样实现电压模拟量和电流模拟量同一路采集?

    我现在设计的图是这样的,当是电流模拟量输入是165欧电阻进行IV转换然后进电压跟随器后进MCU的ADC采集;当是电压的时候直接进电压跟随器。现在Multism仿真和用普通的模拟量传感器(电压电流都有
    发表于 01-05 13:18

    AD7327规格书写的ESD 2.5K是模拟量还是全部管脚?

    AD7327 规格书写的 ESD2.5K 是模拟量还是全部管脚? ad7683号 规格书为什么没写?ESD能到多少K?
    发表于 11-30 06:10