您现在所在的是:

三菱Mitsubishi

回帖:22个,阅读:2977 [上一页] [1] [2] [3] [下一页]
1712
xfdazhu1999
文章数:154
年度积分:50
历史总积分:1712
注册时间:2012/11/10
发站内信
发表于:2013/6/20 21:53:30
#10楼
试用CJ PN的命令,都来可以实现。
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2013/6/20 22:12:15
#11楼
以下是引用xfdazhu19992013/6/20 21:53:30的发言:
试用CJ PN的命令,都来可以实现。
不行的, 所有的设备有可能同时操作也可能不同时操作
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2013/6/20 22:29:55
#12楼
我知道西门子编程有种类似于把程序封装成一个模块 。 类似于电子电路里面的集成块
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
11770
gzg_00
文章数:8996
年度积分:59
历史总积分:11770
注册时间:2009/10/1
发站内信
发表于:2013/6/20 22:44:18
#13楼
以下是引用step12013/6/15 22:20:34的发言:
以下是引用djljcl2013/6/15 21:47:49的发言:
用指针间接寻址加循环指令非常方便。每次循环的时候对指针进行偏移。这样非常方便。而且程序也非常简洁。也不用进行反复调用相同的块。只在主程序OB1里面调用FC一次就够了。我在论坛里面有个回复你可以参照一下。这一下就是我回复别人的内容。
     LAR1 P#272.0   //装入指针272.0到地址寄存1
     LAR2 P#0.0     //装入指针0.0到地址寄存器2
     OPN DB1        //打开数据块对DB1作为共享数据块
     L 8            //载入循环次数8次
FOR:   T MW100        //保存到MW100
     L PIW[AR1,P#0.0]    //载入PIW地址寄存器1,偏移0的地址,
     T DBW[AR2,P#0.0]    //载入PIW地址寄存器2,偏移0的地址,
      TAR1                //AR1 TO ACCU1
     L P#2.0       //偏移2个字节
     +D            //双字想加
     LAR1          //保存到AR1
     TAR2           //AR2 TO ACCU1
     L   P#2.0
     +D
     LAR2
     L MW100     // 载入循环次数到ACCU1
     LOOP FOR    //跳到标签FOR出循环,美循环一次对ACCU1减一,一直到0,跳出循环。
你这是西门子的,我想用三菱的,过段时间再学习西门子。
也可以利用Z寄存器进行啊
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2013/6/21 7:19:00
#14楼
以下是引用gzg_002013/6/20 22:44:18的发言:
以下是引用step12013/6/15 22:20:34的发言:
以下是引用djljcl2013/6/15 21:47:49的发言:
用指针间接寻址加循环指令非常方便。每次循环的时候对指针进行偏移。这样非常方便。而且程序也非常简洁。也不用进行反复调用相同的块。只在主程序OB1里面调用FC一次就够了。我在论坛里面有个回复你可以参照一下。这一下就是我回复别人的内容。
     LAR1 P#272.0   //装入指针272.0到地址寄存1
     LAR2 P#0.0     //装入指针0.0到地址寄存器2
     OPN DB1        //打开数据块对DB1作为共享数据块
     L 8            //载入循环次数8次
FOR:   T MW100        //保存到MW100
     L PIW[AR1,P#0.0]    //载入PIW地址寄存器1,偏移0的地址,
     T DBW[AR2,P#0.0]    //载入PIW地址寄存器2,偏移0的地址,
      TAR1                //AR1 TO ACCU1
     L P#2.0       //偏移2个字节
     +D            //双字想加
     LAR1          //保存到AR1
     TAR2           //AR2 TO ACCU1
     L   P#2.0
     +D
     LAR2
     L MW100     // 载入循环次数到ACCU1
     LOOP FOR    //跳到标签FOR出循环,美循环一次对ACCU1减一,一直到0,跳出循环。
你这是西门子的,我想用三菱的,过段时间再学习西门子。
也可以利用Z寄存器进行啊
几台设备调用这段程序相同或者不相同的阶段,能行吗?
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
11770
gzg_00
文章数:8996
年度积分:59
历史总积分:11770
注册时间:2009/10/1
发站内信
发表于:2013/6/21 13:03:26
#15楼
回复 #14楼 step1
或者你当1的时候设定1的参数,2的时候设定2的参数,然后执行相同的程序段
1712
xfdazhu1999
文章数:154
年度积分:50
历史总积分:1712
注册时间:2012/11/10
发站内信
发表于:2013/6/27 20:01:11
#16楼
回复 #11楼 step1
不会的,我都编写出来了,是独立工作的。
838
djljcl
文章数:20
年度积分:50
历史总积分:838
注册时间:2013/6/15
发站内信
发表于:2013/6/27 21:53:04
#17楼
回复 #14楼 step1
相同部分就循环,不相同部分在循环内采用跳转。因为地址偏移了地址,所以不存在里面跳转了发生由于跳转后保持前一状态的情况。这就考验逻辑思维,所以一定要模拟后再下载到PLC。如果是三菱可以用变址寄存器也是一样的,只不过指令用法和编程指令不一样,但大体想通。这只是一种方法思路。
838
djljcl
文章数:20
年度积分:50
历史总积分:838
注册时间:2013/6/15
发站内信
发表于:2013/6/27 21:56:57
#18楼
回复 #14楼 step1
如果几十台设备一样,你只需要改变载入的循环次数就够了,这个块只需要调用一次。假如五十台一样。你就把L 8,改为L 50,就这样简单。
838
djljcl
文章数:20
年度积分:50
历史总积分:838
注册时间:2013/6/15
发站内信
发表于:2013/6/27 22:08:27
#19楼
回复 #1楼 qinhya
有十台你就要调用10次,五十台就需要调用五十次,能实现,但是程序架构不合理。不简洁。你认为了。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006