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

请教编程 点击:2020 | 回复:40



PZILVLI

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 7回
  • 年度积分:0
  • 历史总积分:43
  • 注册:2006年2月22日
发表于:2006-04-07 09:30:00
楼主
用一只按钮控制一盏灯,按奇数次灯亮,偶数次灯灭.
请问实现上述功能,程序怎么编



QWP

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2006年1月12日
发表于:2006-04-07 10:01:00
1楼
用wand(逻辑乘指令就可以了)

天鸟

  • 精华:0帖
  • 求助:0帖
  • 帖子:90帖 | 2298回
  • 年度积分:0
  • 历史总积分:4043
  • 注册:2005年8月07日
发表于:2006-04-07 10:24:00
2楼
高手应该编两个让我们刚学的看一看,学一学,不要那么小气

livywang

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2006年4月05日
发表于:2006-04-07 12:52:00
3楼
用脉冲加循环移位应也可以实现,或者用脉冲加普通继电器输出。好象OMRON培训教材里有此范例。

microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:85帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2006-04-07 15:41:00
4楼
利用按钮上升沿将某个变量加1,然后将这个变量的最低位作为灯泡的输出即可。

lyzzsl

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 61回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2005年11月11日
发表于:2006-04-07 15:51:00
5楼
赞成microtomato:

pierogoal

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 205回
  • 年度积分:0
  • 历史总积分:275
  • 注册:2004年2月20日
发表于:2006-04-07 15:51:00
6楼
用按纽的脉冲作为输入控制计数器,计数器值一到就自己给自己复位.计数器的值是2,这样计数器就会0,1,0,1.......按一次变一次.

当0的时候,等就灭,1的时候灯就亮.

简单吧,嘿嘿

工控啊!

  • 精华:1帖
  • 求助:0帖
  • 帖子:42帖 | 545回
  • 年度积分:6
  • 历史总积分:13978
  • 注册:2001年11月04日
发表于:2006-04-07 15:53:00
7楼
这太简单了,PLC初学者往往接触此类问题,呵呵!!!

zzx789

  • 精华:0帖
  • 求助:2帖
  • 帖子:34帖 | 84回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2006年3月23日
发表于:2006-04-07 18:02:00
8楼
这样简直太简单了。楼上的楼上说的很好!我觉得不要把问题弄的太复杂了--本来简单的问题!

QISONGGANG

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:0
  • 历史总积分:70
  • 注册:2006年3月30日
发表于:2006-04-07 23:16:00
9楼
建议大师们献出梯形图来看看,可以吗?

曾志华

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 19回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-08 00:20:00
10楼
请microtomato不要浪费资源,用一个位可以实现的东西何必用一个字呢!

enzyh

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 320回
  • 年度积分:0
  • 历史总积分:739
  • 注册:2004年11月12日
发表于:2006-04-08 11:01:00
11楼
曾志华先生的说得对
   只要一个取反指令就可以了.
如三菱的:
  ld x0
  alt y0
end

同行

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 13回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2005年12月14日
发表于:2006-04-09 18:06:00
12楼
 楼上pierogoal的计数器值设2的方法不能实现上述控制要求,因为按第一次按钮计数器计1个数,当第二次按钮才达到计数器的设定值2,这时计数器触点才会动作,这样一来不能实现按第一次时亮,按第二次时灭,如此交替循环亮灯的要求。另外,计数器复位还需要一个按钮输入信号或者靠程序来复位,怎么会自动复位?

zhang123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2006年4月09日
发表于:2006-04-09 18:46:00
13楼
E6B2-CWZ6C-2000P/R型编码器在电正反转设6个点的调试方法

zhang123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2006年4月09日
发表于:2006-04-09 18:47:00
14楼
E6B2-CWZ6C-2000P/R型编码器在电正反转设6个点的调试方法

我的必须

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2004年10月05日
发表于:2006-04-09 19:26:00
15楼
30用pal指令

lee3033

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 22回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2003年11月19日
发表于:2006-04-09 19:33:00
16楼
ld x0
pls m0
ld m0
ani y0
ldi m0
and y0
orb
out y0
end
[color=#800080][color=#FF0000][i][b]以上应该是最通用的![/b][/i][/color][/color]

pierogoal

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 205回
  • 年度积分:0
  • 历史总积分:275
  • 注册:2004年2月20日
发表于:2006-04-10 16:27:00
17楼
楼上的同行同志:

你可能没看清楚我写的内容.加入我把c1的值设成2,那么它的初始值就是0,按一次变成1,再按一次,用c1本身给自己复位,又变成了0,如此循环.

也就是说,计数器从来没有通的时候,但是它的值确实是0,1,0,1,0,1.

当c1的值为1,就接通灯,难道这样不可以吗?

简单的两条指令,你自己试下吧

戒不掉的烟

  • 精华:0帖
  • 求助:5帖
  • 帖子:10帖 | 419回
  • 年度积分:0
  • 历史总积分:402
  • 注册:2006年2月06日
发表于:2006-04-10 17:14:00
18楼

戒不掉的烟

  • 精华:0帖
  • 求助:5帖
  • 帖子:10帖 | 419回
  • 年度积分:0
  • 历史总积分:402
  • 注册:2006年2月06日
发表于:2006-04-10 17:33:00
19楼
太匆忙了,忘记将M3和M6复位了,不好意思

microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:85帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2006-04-10 18:22:00
20楼
re: enzyh和曾志华
还是我的方法好,因为:
1.我的程序是跨平台的,兼容全世界所有的计算机和PLC。因为全世界所有的CPU的机器码中都包含Inc指令。
2.执行效率最高。因为经过编译程序编译后,我的代码所产生的机器码最短(因为机器码中有对应的指令,所以可以直接转换)。你的代码虽然只用了个取反指令,但这个指令并不是CPU直接支持的(因为CPU的机器指令中并没有单个bit的取反指令),所以经过编译后,你的取反指令就变成调用了1段子程序。虽然这个子程序非常简单,但是对于CPU时钟周期消耗量的多少而言,速度还是不及偶的。
3.虽然用掉1个字的空间,但是很多高级语言里面的Bool类型变量在内存中其实并不是只占1个bit,而是和我一样,占1个word(例如pascal语言,c语言(c语言没有bool类型,要实现其他语言中的bool类型只能用int类型替代),和你们熟悉的basic语言都是)。而且CPU取数据都是按字节或者字来存取数据的,如果要读取某个地址中的某个位,都是必须把整个字节(或字)全部读上来后再进行判断,按你的意思这也是存在浪费,这又如何解决呢?我还不知道世界上还有能单取1个bit的cpu呢。

热门招聘
相关主题

官方公众号

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