6886|0

223

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

带解释的西门子S7-200示例程序 [复制链接]

ORGANIZATION_BLOCK MAIN:OB1
            TITLE= Tip021B
            // 题目:灯泡亮度控制
            // ***概述***
            // 这个示例解释了一个使用S7-200的集成高速脉冲输出指令来控制灯泡(24V/1W)
            // 亮度的例子,模拟电位器0的设置值影响输出端Q0.0方波信号的脉冲宽度,也就
            // 是灯泡的亮度。调整电位器时需要一把(2.5mm)螺丝刀。
            // ***程序和注释***
            // 在程序的每次扫描过程中,模拟电位器0的值,通过特殊存储字节SMB28被拷贝到内存
            // 字MW0的低字节MB1。电位器的值除以8作为脉宽,脉宽和脉冲周期的比率大致决定了灯
            // 泡的亮度(相对于最大亮度)。除以8会带来这样一个额外的好处,即丢弃了SMB28所存
            // 值的3个最低有效位,从而使程序更稳定。如果电位器值变化了,那么将重新初始化
            // 输出端Q0.0的脉宽调制,借此电位器的新值将被变换成脉宽的毫秒值。
            // 例:SMB28=80 (电位器0的值)
            // 80/8=10
            // 10/25(=脉宽/周期)=40%(电压时间比)=40%最大亮度
            // 标题:用电位器调灯泡亮度
            //
            BEGIN
            Network 1 // ***主程序***
            LD SM0.1 // 第一次扫描SM0.1=1
            MOVW +0, MW0 // 标志字MW0清零

            Network 2
            LD SM0.0 //设置栈顶(SM0.0总是1)
            MOVW MW0, MW2 // 保存电位器的旧值
            MOVB SMB28, MB1 // 在MW0的低字节(MB1)保存模拟电位器新值
            SRW MW0, 3 // 将电位器新值除8

            Network 3
            LDW= MW0, MW2 // 判电位器新值(MW0)是否等于旧值(MW2)
            NOT // 若不等
            MOVB 16#CB, SMB67 // 设置PMW的控制字节(激活PWM,时基1毫秒,
            //可更新脉宽和周期)
            MOVW +25, SMW68 //设置脉冲周期为25毫秒
            MOVW MW0, SMW70 // 根据电位器值设置脉宽。
            PLS 0 // 在输出端Q0.0输出脉宽

            Network 4 // 主程序结束
            // MEND
            //
            END_ORGANIZATION_BLOCK

点赞 关注
个人签名读书,让你忘掉烦恼(http://ordinarysky.cn)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表