新手请教:s7_300的M区可以按DWORD数据来读不?高低字节怎么转换呢? 点击:1182 | 回复:2



青青竹叶

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2005年7月04日
发表于:2005-07-05 22:48:00
楼主
用prodave的函数m_field_read(no,amount,buffer);来读M区,现在遇到的地址分配是MD80,MD84,MD88,... 手册上说m_field_read函数是按字节byte来读的 如果现在要把上面的三个DWORD数据读出来,这样写行不? char buffer[12]; ...... res=m_field_read(80,12,buffer); ...... prodave的手册里面对WORD型数据有如下说法: “The data words are stored in the "buffer" not in accordance with Intel-Notation (low byte - high byte) but in STEP5-Notation (high byte - low byte). This is important if the data is processed further” 那么对DWORD类型是不是也有高低字节顺序变换的问题呢。 如果一样的话,buffer[0],buffer[1],buffer[2],buffer[3]里面存的数据怎么转换成正常的DWORD数据呢 应该是buffer[3],buffer[2],buffer[1],buffer[0]还是 buffer[2], buffer[3],buffer[0],buffer[1]或者是其他的什么 刚涉及这方面的东西,请教各位达人了!谢谢先!



microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2005-07-05 22:52:00
1楼
buffer应该是个指针吧,这不就结了:)

青青竹叶

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2005年7月04日
发表于:2005-07-05 22:57:00
2楼
char buffer[12];      ......      res=m_field_read(80,12,buffer);      ...... 写数组名就是地址嘛 麻烦再看哈我的问题

热门招聘
相关主题

官方公众号

智造工程师