登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:西门子PLC300

点击:600 回复:3

请问这段程序怎么理解
附件 `Q088PP3R`{9E`0JEF8{V8D.jpg
15-01-22 10:56
这是一段PLC读取机器人DO信号的程序 怎么理解
15-01-22 11:12

引用 244306717 在 2015/1/22 10:56:41 发言【内容省略】

L #IO_Address   //装入IO地址,请注意,这里地址还不是真正的地址。
SLD 3    //左移3位,形成真正的指针地址。
T #result_dword  //保存指针
LAR1  P##ROBOT_DO //装入ROBOT_DO指针
L 8
READ:T #looppointer  //循环变量设为8
   L  PID【result_dword】 //装入地址为result_dword的内容
   T  DID【AR1,P#0.0】   //保存到背景数据块中,地址为 ROBOT_DO+0.0
   接下来result_dword+4.0,移动指针
   +AR1,4.0性质相同,也是移动指针
  。。。。。循环
大致就是这个意思,如果翻译成C语言的话,大致相当于就是:
int *p1,*p2;
for(i=0;i<=8;i++)
{
  *p2=*p1;
  p1++;
  p2++;
}
15-01-22 11:54
1.读取DO的起始地址
2.左移3位
3.存放至result_dword
4.装载指针P#ROBOT_DO至AR1
5.装载循环次数
6.将循环次数赋值到looppointer
7.装载DO的地址(地址指向result_dword的值)
8.传送至DI的存储地址(地址指向P#ROBOT_DO的值,偏移0)
9.result_dword加4个字节(指向下一个双字地址)
10.P#ROBOT_DO增加4个字节
11.判断循环次数是否完成8次,没有的话跳转到READ,继续执行循环程序
15-01-22 11:57

工控新闻

更多新闻资讯