首页 上一页 1 2 下一页 尾页

台达DOP的一些疑问 点击:1991 | 回复:22



teamo.wan

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-10 10:36:00
楼主
学习了一段时间的DOP,有些疑问,还望高人指点.
1. 
GOTO LABEL 1  是指程序跳到LABEL 1 ,然后一直往下执行(不管后面有没有其他的  LABEL);还是指程序执行到后一个LABEL时就停止了?
2。
END 指令如果放在子巨集里面,当执行到该END指令时,是只结束该子巨集程序的执行,还是要结束所有巨集程序的执行???
3。
指令$100=INITCOM(0,0,0,0,0,6,0)中,
INITCOM是设定通讯口和通讯协议,那如果原来正在通讯的通讯协议和INITCOM中的通讯协议不一致的话,执行INITCOM岂不是就和设备通讯不上了?。
还有,INITCOM指令的执行和寄存器$100有什么关系?上述执行中“$100=“有什么作用? 难道是把通讯协议放进$100?,放进去做什么??!!



一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-11 08:42:00
1楼
1、如果在每个label的最后都加一个end,则只执行当前跳转的label;如果当前label的最后没有end,则会执行当前跳转的label向下的所有程序。
2、在执行子程序时,如果在子程序中间插入end,则只会执行end以前的语句,然后跳出检测呼叫子程序条件是否成立,如果呼叫子程序的条件一直成立的话,则会循环执行。
3、一直没有发现所指定的寄存器的状态有变化,可能只是一定的语法结构。后续会再确认。

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-11 09:06:00
2楼
TO 竹根:  如果在子程序中,执行到END指令后,跳出并检测到呼叫子程序的条件不成立,而主程序中,"呼叫子程序"后面还有程序的话,这"后面的程序"会不会被执行? 还有,如果条件一直成立的话,子程序一直在被循环执行,那主程序中的后面部分程序还会不会执行?

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-11 09:56:00
3楼
参考下图:

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-11 10:24:00
4楼
在子程序中,执行默认的ret後,会返回到从主程序开头开始重新判断。如果跳转指令一直成立,则主程序后面的程序不会被执行。

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-11 11:31:00
5楼
關於第三個問題:$100 內的數值就是用來表示設定通訊口是否成功, $100 = 0 表示開啟通訊口失敗, $100 = 1 則表示成功.

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-11 21:26:00
6楼
TO  竹根:
 我和lesing.du实验过了,就算跳转指令一直成立,主程序后面的程序仍会被执行.如以下程序:
Background宏:
   $0=20;
   IF $0=20 THEN CALL 1;
   $1=$1+1;

子宏1:
   $2=$2+1;
   RET;

程序运行结果:$1,$2都递增.

麻烦你试试,为什么会出现此现象?


一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-11 21:43:00
7楼
同样的程序没有发现你说的现象,离线模拟,只有$2在递增。

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-11 21:53:00
8楼
我也是离线模拟的,但我的确实是两个都递增.你能否确认一下,程序中的和监控的都是$1和$2吗?

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-12 17:14:00
9楼
确认了,没有问题的。可以将你的程序下载到人机中测试一下。

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-12 21:25:00
10楼
我用的软件版本是1.05.71, 韧体版本是1.06f(C).
不知道是不是因为版本的不同而导致的差异.你的软件和韧体的版本是多少??

piziy

  • 精华:2帖
  • 求助:0帖
  • 帖子:46帖 | 188回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-10-16 11:32:00
11楼
   TO  竹根:
 我和lesing.du实验过了,就算跳转指令一直成立,主程序后面的程序仍会被执行.如以下程序:
Background宏:
   $0=20;
   IF $0=20 THEN CALL 1;
   $1=$1+1;

子宏1:
   $2=$2+1;
   RET;

程序运行结果:$1,$2都递增.

麻烦你试试,为什么会出现此现象?



这个是执行的!你的运行结果是正常的,不这样就不正常

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-17 08:57:00
12楼
各位好:请问是不是下载到人机做的测试。
我这里按照上面列出的程序离线模拟/下载到人机都只发现$2在累加,$1不变。
我使用的软件版本为1.05.74(bulid v1.073)

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-17 11:24:00
13楼
我用1.05.74软件版本离线模拟过了,结果一样:$1,$2都递增!
不明白竹根的实验结果为什么和我们的不一样?

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-10-17 23:03:00
14楼
TO  竹根、piziy: 
 小弟不太清楚指令GETCHARS的用法,请指教。
 $410=GETCHARS($700,8,100),$410有何意义?后面的参数的意义是否是:将从通讯端口接受到的8个字节数据放在以$700为起始地址的寄存器中,最大通讯时间为100MS?

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2006-10-19 08:38:00
15楼
getchars要和putchars配对使用。$410是用来监测通讯是否成功,若成功,值会变为1。
但是通过getchars读取上来的不但是需要的寄存器的数值,而是反馈的完整信息。

piziy

  • 精华:2帖
  • 求助:0帖
  • 帖子:46帖 | 188回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-10-19 16:14:00
16楼
S410为返回值,和C语言里面所用到的差不多

dakaike

  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 49回
  • 年度积分:0
  • 历史总积分:971
  • 注册:2006年6月19日
发表于:2006-12-30 18:43:00
17楼
各位大虾好!我是初次接触台达DOP-AE57BSTD.我第一次的时候设置的是COM1通信接口.当我第二次选用COM2接口时.<以上是PC-DOP下载>但是当第二次在下载却不能下载不进去啦!画面显示Abr:30271418
     Com1
          Bypassing
           Cancel

  等字样  还一直响个不停   还请各位大虾赐教!急!

中达电通

  • 精华:3帖
  • 求助:0帖
  • 帖子:39帖 | 611回
  • 年度积分:0
  • 历史总积分:981
  • 注册:2002年1月06日
发表于:2006-12-31 08:46:00
18楼
非常有可能使您的软件版本太老了了,我们06年初的时候就已经发布了公告,请大家使用1.05.68及以上版本,请LZ查看一下您的版本。

中达电通

  • 精华:3帖
  • 求助:0帖
  • 帖子:39帖 | 611回
  • 年度积分:0
  • 历史总积分:981
  • 注册:2002年1月06日
发表于:2006-12-31 13:25:00
19楼
可能原因,
出现【Bypass Mode】对话框时,您选择的YES
应该选择NO.

dakaike

  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 49回
  • 年度积分:0
  • 历史总积分:971
  • 注册:2006年6月19日
发表于:2007-01-02 10:46:00
20楼
但是选择NO的话  就等于放弃上载啦  画面就成这样 
    COM1
    Waitting to downtoad/upload
    
     cancel 
这样的话在从PC-DOP下载就行不通啦!

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页