欧姆龙PLC间接寻址的灵活应用

欧姆龙PLC间接寻址的灵活应用

ID:43493149

大小:751.27 KB

页数:6页

时间:2019-10-08

欧姆龙PLC间接寻址的灵活应用_第1页
欧姆龙PLC间接寻址的灵活应用_第2页
欧姆龙PLC间接寻址的灵活应用_第3页
欧姆龙PLC间接寻址的灵活应用_第4页
欧姆龙PLC间接寻址的灵活应用_第5页
资源描述:

《欧姆龙PLC间接寻址的灵活应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、欧姆龙PLC间接寻址的灵活应用在PLC控制系统中,需要经常对连续多个数据进行某项操作,比如产生一系统数据或者一系统数据执行连续运算或比较以及按时间来对数据进行存储等。在小型PLC中无变址寄存器情况下,以间接寻址的方法将大大减少程序开销的容量,以及提高程序的可读性。现以欧姆龙PLC来实现以上四项操作,其它系列PLC类似。(因在执行平方根与除法运算的例程稍显复杂,故只有此例增加地址注释,其它程序段较小,故没有增加注释)。一:对PLC连续D区产生一组连续的数据。图1:对D1000开始的地址连续存储1-100的数据程序剖析:先初始化要应用的间接寻址寄

2、存器D600,再选择需要产生的连续数据个数,本例使用FOR指令来连续循环执行操作,使用++B从而产生源数据,再使用MOV指令,将产生的源数据送至D600中指定的地址中去,注意*D600前的*号,同时间接寻址地址D600执行++B操作,为下一个循环指明直接地址作准备。当循环指定次数&100到达后,将自动跳出FOR循环,将执行NEXT之后的程序。当下次扫描周期到达时,程序将又从初始化间接寻址开始执行。图2:监视PLC内的D1000开始地址内的数据数据剖析:进入PLC中的D区值进行监视D1000开始地址中,将会发现D1000至D1099分别存储为1

3、-100的数据。如果需要修改初始值时,可以在初始化时将D601输入相应的值即可,当然如果要产生200个数据,修改FOR后的数据由&100修改为&200即可。二:对连续通道的数据执行算术运算(寻找执行平方根后为整数的数及寻找被指定数整除的数)。图3:D5000存储来自于D1000执行的平方根后为整数的数,D4000存储来自于D1000内被3整除的数程序剖析:平方根ROOT指令源数据为32位,然而本次的源数据却是16位数据,同时因ROOT指令对平方根的余数不进行保留,故无法直接得到小数部分,也即无法精准得出执行平方根后是否为整数,故需将底16位置

4、0(间接地将数据乘以#10000),即每次在执行ROOT之前需将底16位使用"MOV#0*D606"来清零,同时使用MOVD指令来提取出D608中的底8位即就是执行平方根后的小数部分值,当D608为零时表示执行平方根操作后无小数产生,即将源地址中的数据送至新目标地址中去,这样就实现了寻找指定区域内整数平方根的数据。能被3整除的数据,那余数必定为0,利用这点即可得出能被3整除的数,并提取存储至D4000。图4:PLC内D4000开始地址存储来自于D1000内能被3整除的数据数据剖析:从D4000开始存储的数都是从D1000中开始到D1200中共

5、200个地址中能被3整除的数。比如:54÷3=18;102÷3=34;129÷3=43;198÷3=66。即以上表中得出的数据除以3不会有小数。图5:PLC内D5000开始地址存储来自于D1000内数据执行的平方根操作数据剖析:从D5000开始存储的数都是从D1000中开始到D1200中共200个地址当中执行完平方根指令后数据为整数的数。2222比如:√1=1;√4=2;√121=11;√196=14。即他们执行平方根后的数据无小数产生。指令剖析:FOR---NEXT:用于循环操作,循环次数由FOR后的数据决定,循环的区域从FOR到NEXT之

6、间包含的所有指令,都参与到循环。本例用于循环扫描次数来产生数据及中间数据操作运算。++B:BCD码自加加指令,用于自增加。本例用于间接寻址自增加。/B:BCD除法运算。本例目的是为了得到余数,让余数来作分支判断。ROOT:平方根指令。本例让底16位置0,高16位参与平方根操作,再结果处提取底8位的值即为小数值,让此小数值来判断执行完平方根后是否为整理,让小数来作分支判断。MOVD:数字传送。将16位数据分割为4个4位数据,按照控制字的要求,传输指定的位个数。本例目的为了将D608中的底8位传输到D609中的底8位,其它位不改变。三:对连续通道

7、的数据执行比较操作(寻找指定连续地址中数据不一致的操作)。图6:对连续通道内的数据执行比较操作,并将比较不一致的地址指出程序剖析:先初始化间接寻址地址值,选择执行次数(20次),使用间接寻址读取出D1100与D1120开始的连续20个字中数据不一致的地址位置,将不一样的地址值送至D1140中。注意程序中使用了BREAK指令,即表示在条件满足时,将退出FOR指令。指令剖析:BREAK:用于FOR---NEXT中作中断循环指令。在循环体中BREAK条件一当满足时,将退出FOR---NEXT循环。图7:PLC内D1100开始的地址值内存剖析:因D1

8、117内的数据#ABCD与D1137内的数据#BACD不一样,所以程序将记录不一样的地址D1117存储于D1140中。四:按指定时间读取指定地址中的数据并送至指定的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。