加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用间接寻址减少S7-200和200SMART子程序输入输出的参数

(2016-03-21 12:45:18)
标签:

plc培训

s7-300

s7200

工控老鬼

启程plc培训

分类: 启程PLC培训
作者:廖常初 原文地址:http://bbs.gkong.com/archive.aspx?id=399841  中华工控网

S7-200和200SMART的子程序最多16个输入、输出参数。使用间接寻址可以显著减少输入、输出参数的个数,不再受上述的限制。
下面举一个简单的例子。
子程序“异或运算”对V存储器中连续的若干个字节作异或运算,下面给出了子程序的局部变量和STL程序。
子程序中的BTI指令用于将数据类型为字节的输入参数“字节数B”转换为数据类型为整数的临时变量“字节数I”,用来做FOR指令的当前循环计数器。
输入参数“地址指针”是需要异或运算的数据区的起始地址。子程序中的“*#地址指针”是输入参数“地址指针”指定的地址中变量的值。在循环程序执行的过程中,该指针中的地址值是动态变化的。
http://static.gkong.com/upload/blog/201501/325c170522ec11c7bfa627870ca9d189.jpg
下图是主程序中调用“异或运算”子程序的程序。调用时指定的“地址指针”的值&VB10是源地址的初始值,即数据字节从VB10开始存放;需要异或运算的数据的字节数为4,异或运算的结果存放在VB14中。
http://static.gkong.com/upload/blog/201501/f04488bcaaa5da0091c6fde868f71c8b.jpg
实际上该子程序的输入、输出参数还可以进一步地简化:将保存运算结果的字节放在地址指针所指的地址区的第一个字节,需要异或运算的字节数放在第2个字节,需要运算的数据从第3个字节存放。这样就只需要一个输入参数了,当然程序要做相应的改动。但是程序的输入、输出接口没有第一个方案直观。


经验||现场仪表的故障分析及解决方法

---------------------------------

关注启程,关注专注的力量启程公众微信号:gongkong8 关注免费领取视频

启程工控学院 启程自动化培训:【西门子PLC 三菱PLC WinCC Eplan 运动控制机械设计 】项目实训\人手一机\包学包会PLC编程\组态\modbus 以太网通讯\PID\XYZ轴运动控制视觉识别,【工控老鬼团队】执教高薪就业! 证书办理信用卡分期付款 高薪就业

启程自动化培训中国专业的自动化培训服务提供商

西门子TIA博途助力中信戴卡建设面向未来的智能化生产线

详细课程情况请访问网站:http://www.qichengplc.com

 

启程全系列课程全面预约中!!! 优惠多多!!


电工到电气工程师的成长进阶之路

电工到电气工程师的成长进阶之路

电工到电气工程师的成长进阶之路



【图解】西门子全集成自动化TIA系统展示卡车到访启程自动化培训

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有