| 作者 | 主题 |
|---|---|
|
手机用户20180604694547 奇侠
经验值:5540 发帖数:996 精华帖:7 |
楼主
主题:SMART200 PLC模块化编程方案分享
smart200作为一款西门子低端的PLC各方面功能都不是太高,但该有的功能也都有。smart是不能使用FB块和UDT功能,这也是限制smart功能的一个很大的地方,下面介绍一种比较方便的方法来替代FB块的功能。 这里以模拟量数据采集监控为例,主要实现模拟量转换为实际数值,并对其进行报警处理。这是我们最常见的一种应用情况。 1,FC块的引脚介绍,FC块的引脚主要包括了“起始位”,“INPUT”,“量程最大值”,“量程最小值”,“输入下限”(模拟量输入最大固定为27648)和“报警允许” 2,FC块的temp区数据如下:(数据比较多不一一写出,11行的temp是占位用的,程序中没有使用到。) 3,指针的使用,指针主要分为程序开始时将外部指定区域数据读取到TEMP区(也可以将数据读取到一个未使用的V区),和程序结束后将TEMP区的数据写入到指定区域的数据中。 4,模拟量转换,数据修正,数据报警的程序。模拟量转换主要是通过官网提供的SCALE库实现的。数据报警因为这里使用的是回查就没有使用延时了。 5,FC块的使用方法,这个FC块使用起来也很方便,首先我们需要自行规划好数据区域,我这个使用到了34个字节,而我程序中写的是40个字节预留了一些以被修改。这有点类似与wincc中的结构变量,并且这个与wincc的结构变量联合使用会有很方便的。 以上就是我的一个小小的方案,我的方案主要思路是通过指针与"MLKMOV"指令,指定一片设计好的地址为FC的satic区,使指定区域的数据具有保持功能,也可以减少fc块的引脚数量。 欢迎各位大师指导我的方案,看看有没有什么需要改进或者优化的地方。 |
|
芳季 至圣 经验值:72108 发帖数:15503 精华帖:101 |
5楼
主题:回复:SMART200 PLC模块化编程方案分享你为什么会是这样制作指针的? mov一次,再add一次,再使用? 直接mov到指针会怎样? |
|
手机用户20220320634958 游士 经验值:190 发帖数:27 精华帖:0 |
6楼
主题:回复:SMART200 PLC模块化编程方案分享请问,怎么我的STEP7-Micro/WIN smart V2.6,在MOV_DW爽字块的IN中无法输入&VB0? 只能输入*的指针字符!无法输入&地址。啥情况?是你的错还是版本的问题? |
|
芳季 至圣 经验值:72108 发帖数:15503 精华帖:101 |
9楼
主题:回复:SMART200 PLC模块化编程方案分享你宁可用双字装载一个起始位也不用双字装载一个指针?指针和你起始位都是双字啊。 如果直接在指令中就使用指针和你这样算一次,有什么区别? |
|
手机用户20180604694547 奇侠 经验值:5540 发帖数:996 精华帖:7 |
10楼
主题:回复:SMART200 PLC模块化编程方案分享
这就是我程序可以重复调用的关键,如果固定了起始位这个块就不能重复调用了。我用指针刚开始指向的Vb0,然后通过偏移量来确定已经规划好的数据区域起始地址。
|
|
芳季 至圣 经验值:72108 发帖数:15503 精华帖:101 |
12楼
主题:回复:SMART200 PLC模块化编程方案分享你不可以一开始就在输入参数端口上面填写【&vbx】吗? 我意思是填偏移也是填,填指针也是填。而且两者都占用32位。 |
|
芳季 至圣 经验值:72108 发帖数:15503 精华帖:101 |
13楼
主题:回复:SMART200 PLC模块化编程方案分享 |
|
手机用户20180604694547 奇侠 经验值:5540 发帖数:996 精华帖:7 |
14楼
主题:回复:SMART200 PLC模块化编程方案分享明白您的意思了,您提的这个建议确实不错可以节省一些空间,昨天思路没有转过来。您这一指点我就明白了,多谢。 |
|
万泉河 至圣 经验值:29190 发帖数:10900 精华帖:131 |
15楼
主题:回复:SMART200 PLC模块化编程方案分享你的方法原本就是最好的。 你别被芳季兄给误导走了歪路。 FC内部自己计算偏移量的好处是程序调用过程中不需要关心具体的指针位置。 而放到IN管脚来, 外部程序就需要管理和分配这些指针, 增加了耦合的工作量,讨厌的很。 最终的结果这个程序块就你自己喜欢用, 别人一概不会用用不会,而且即便你自己的使用中也非常容易出错, 一个计算错误就全崩溃了。 一定要高内聚低耦合的原则,每一个细节都不厌其烦。
微信公众号:PLC标准化编程,ZHO6371995
|