PLC怎样通过定义指针记录传感器数据 点击:1199 | 回复:5



jiming

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 44回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2010年4月02日
发表于:2012-02-02 13:44:47
楼主

各位前辈,小弟近日负责的项目中,应用西门子1200PLC,要求周期性的记录系统中流量传感器测得的流量值,由于我所应用的触摸屏记录功能太差,所以准备在PLC中记录下来。现在初步的设想是,每100ms执行一次MOV指令,将测得的流量工程量写入一段连续的地址里.

假设MD20为流量测得值    第一个周期执行  MOV  MD20  MD100     第二周期就执行MOV  MD20  MD104   

下一周期就是MOV MD20 MD108      就是想实现这样一个功能,我也想过用数组记录,如MOV MD20  ARRAY【1】   然后依此类推。

但,如何来实现却想不明白,在1200里指针是怎么定义的,怎么应用的,能不能这样寻址:MD【MD10】  

还请各位大侠指点



楼主最近还看过



青岛黄工

  • [版主]
  • 精华:5帖
  • 求助:89帖
  • 帖子:171帖 | 4776回
  • 年度积分:0
  • 历史总积分:24301
  • 注册:2007年4月02日
发表于:2012-02-02 16:47:20
1楼

存储器间接寻址具有两个指针格式:单字和双字。

单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。

双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。

指针可以存放在MDIDBL区域中,也就是说,可以用这些区域的内容来做指针。

单字指针和双字指针在使用上有很大区别。下面举例说明:

L     DW#16#35    //3216进制数35存入ACC1

 T     MD2         //这个值再存入MD2,这是个32位的位存储区域

 L     +10          //16位整数10存入ACC13216进制数35自动移动到ACC2

T     MW100      //这个值再存入MW100,这是个16位的位存储区域

OPN  DBW【MW100】 //打开DBW10。这里的【MW100】就是个单字指针,存放指针的区域是M区,MW100中的值10,就是指针间接指定的地址,它是个16位的值!

 

青岛黄工

  • [版主]
  • 精华:5帖
  • 求助:89帖
  • 帖子:171帖 | 4776回
  • 年度积分:0
  • 历史总积分:24301
  • 注册:2007年4月02日
发表于:2012-02-02 16:49:30
2楼

再看看这个帖子,如果还不明白

http://bbs.gongkong.com/Details/201201/2012011117165700001-1.shtml

焦荔

  • 精华:1帖
  • 求助:12帖
  • 帖子:35帖 | 611回
  • 年度积分:0
  • 历史总积分:3321
  • 注册:2006年11月26日
发表于:2012-02-02 17:11:56
3楼
回复内容:
对:青岛黄工关于存储器间接寻址具有两个指针格式:单字和双字。单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。单字指针和双字指针在使用上有很大区别。下面举例说明:L     DW#16#35    //将32位16进制数35存入ACC1 T     MD2         //这个值再存入MD2,这是个32位的位存储区域 L     +10          //将16位整数10存入ACC1,32位16进制数35自动移动到ACC2T     MW100      //这个值再存入MW100,这是个16位的位存储区域OPN  DBW【MW100】 //打开DBW10。这里的【MW100】就是个单字指针,存放指针的区域是M区,MW100中的值10,就是指针间接指定的地址,它是个16位的值! 内容的回复:

黄工很热情的,希望你多指点我们学习PLC的

无聊的和尚

  • 精华:0帖
  • 求助:3帖
  • 帖子:3帖 | 574回
  • 年度积分:0
  • 历史总积分:1753
  • 注册:2009年11月11日
发表于:2012-02-03 14:50:09
4楼
引用 青岛黄工 的回复内容:存储器间接寻址具有两个指针格式:单字和双字。单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。单字指针和双字指针在使用上有很大区别。下面举例说明:L     DW#16#35    //将32位16进制数35存入ACC1 T     MD2         //这个值再存入MD2,这是个32位的位存储区域 L     +10          //将16位整数10存入ACC1,32位16进制数35自动移动到ACC2T     MW100      //这个值再存入MW100,这是个16位的位存储区域OPN  DBW【MW100】 //打开DBW10。这里的【MW100】就是个单字指针,存放指针的区域是M区,MW100中的值10,就是指针间接指定的地址,它是个16位的值! 



liquang

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 187回
  • 年度积分:0
  • 历史总积分:3134
  • 注册:2010年11月25日
发表于:2012-02-03 22:08:00
5楼

西门子plc有强大的通讯功能,编写通讯程序定时读取就可以了。


热门招聘
相关主题

官方公众号

智造工程师