您现在所在的是:

PLC论坛

回帖:0个,阅读:45 [上一页] [1] [下一页]
22113
bnnyygy
文章数:6313
年度积分:1009
历史总积分:22113
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2025/8/12 8:56:08
#0楼
最近无聊,分享一下给大家吧,感觉这种老PLC编程快要没落了,给新手分享一下吧,有错误,老手请指正;

1,IR,DR寄存器的使用;<编写功能块需要用到>

2,CP1H,CJ系列均可用的NC113,213,413的功能块,


~~~~~~~~~~~~~~~~~
<禁止拿去售卖,自己用,商用都可以;直接拿去售卖的,诅咒生娃18个P眼>
<禁止拿去售卖,自己用,商用都可以;直接拿去售卖的,诅咒生娃18个P眼>
<禁止拿去售卖,自己用,商用都可以;直接拿去售卖的,诅咒生娃18个P眼>
~~~~~~~~~~
第一大纲,IR变址寄存器精髓;

MOVR正常表达:MOVR D0 IR1,就是把D0<内部绝对地址>写个IR1     等同于 MOVL &65536 IR1 ,<这个可以忽悠很多人,让他们直接看不懂欧姆龙表情>

它两一样的, IR寄存器是32位的,所有需要用MOVL,

程序其它地方使用呢?

MOV +0,IR1 D100,  等同于 MOV D0 D100
MOV +10,IR1 D100 等同于 MOV D10 D100

还有一个DR,这个是16bit的

MOV DR0,IR1 D100

DR0=0 等同于 MOV D0 D100
DR0=+10 等同于 MOV D10 D100,

~~~~~~~~ 好了,以上就是欧姆龙变址寄存器的精髓。

附图一张,A0,W0,H0,D0 内部绝对地址。



附件 movr.jpg


~~~~~~~~~~~~~~~~~

第二大纲,欧姆龙NC模块功能块编写,<软件FB文件夹也有,但是全部是分散,零散的>,自己写,更方便

要写功能块,先知道大致内容:手册有M区,L区  N区,具体看看手册,下面开始

M0~M3 是数据区域,开始字,轴参数定义,公共参数区域开始字, m = D20000 + 100 × 单元
M+4~M115 是轴参数区域<轴数不一样,占用地址大小不一样>,比如限位NC NO类型啊,最大速度,之类的,

附件 】~JKLM~BW9DV}】J2M(Z8】$S.jpg


~~~~~~~

N区 操作储存区域的开始字, n = CIO 2000 + 10 × 单元

这里是控制位,以及反馈信号

附件 1.jpg



~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I区 是M0 M1 定义的位置,模块不一样开始的字不一样, 113 是+32,213是60,413是+116

这里主要是要给定位的位置,速度,加减速时间


附件 2.jpg



~~~~~~~~~~~~~~

好了,上面就是手册的大致意思,

新建一个功能,添加一个NC413模块,单元号设置为10

M0= D20000+10*100 =D21000

如图:

附件 3.jpg

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这里制作简单的点动,相对移动,绝对移动,所以更多功能请自行探索;

M0 是默认的,M1开始区域=0 也就是默认的, 也就是按上面手册描述的使用D21000 开始的字,N区域默认改不了使用2000+10*10 =CHI2100

监控数据如下: <M2bit12~15可以设置不用几轴,但是对硬件版本有要求,版本太低会报错,所以使用全部轴>

附件 4.jpg


~~~~~~~~~~


知道了全部内容,开始编写功能块;


1,定义功能块引脚(CP1H不支持IN_OUT接口) 只用IN,OUT,以及内部变量

ps:我的命名规范不是标准的,方便理解大致说一下, AB_CCC   a是变量输入i,输出o,内部v,B是类型,b=bool,i=int,r=real,D=Dint;CCC=具体内容了。


输入:
附件 10.jpg


输出:


附件 11.jpg


~~~~~~~~~~


内部变量,用的时候添加吧。


功能块内部:

1,检查给定参数是否合规,<vb_参数OK 你就当成是2行串联吧,不存在双线圈的问题>

附件 12.jpg


2,N区偏移量计算,bit操作位<setb>+状态反馈



附件 13.jpg



附件 14.jpg

3,L区 模块类型不一样,偏移位置不一样,内部部分反馈给定又不是连续的,很蛋疼。。


附件 15.jpg

附件 16.jpg



~~~~~~
以上,昨天下午弄了一下午写的。


补充技巧,因为使用了IR,避免影响其它不规范的使用,功能块开始记得保存IR值。<理论上都是先赋值再使用>

第一行:MOVL IR* VD_IRtemp, <保存IR寄存器的值>

最后一行 MOVL VD_IRtemp IR* <还原IR的值>

!~~~~~~~~~~~~

效果如下,只需要填写单元号+模块轴数+轴号,就可以使用了,也不需要自己记什么绝对地址了,只管用,

附件 ~OQ4P0WWS0OXQB【1~@4QZ4M.jpg


~~~~~~~~~~

附件等审核过了再添加。

论坛上传附件报错,我放NAS吧
飞牛分享【NC_操作.zip】,点击链接下载文件,App打开可转存到NAS:http://bnnyygy.top:16666/s/d3bfa229c6794eb289,密码:6666


分享到国庆节10.8号。后续如果失效了需要跟帖我补充。
[此贴子已经被作者于2025/8/12 10:12:05编辑过]

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

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

31.2002