第3课 传送指令的应用
本节内容:
MOV指令
MOVP指令
FMOV指令
FMOVP指令
BMOV指令
BMOVP指令
一,MOV传送指令
该功能指令是将源数据传送到目标元件上
源操作数可取所有数据类型,标操作数可以是KnY、KnM、KnS、T、C、D、V、Z
当我们按下X1时把10进制数K100传送给D0
当我们按下X2时把D0的值传送给D1
这时我们D0和D1的值就是10进制的100。
我们来看看在ST语言中的表示
我们输入MOV按下Ctrl+F1快速出来对话框
MOV( ?BOOL_EN? , ?ANY16_s? , ?ANY16_d? );
我们可以看到MOV指令的使用条件
BOOL_EN:我们的启动条件可以是X、Y、M等等
ANY16_s:我们的源操作数
ANY16_d:我们的目标操作数
同理我们还原梯形图
MOV( X1 , k100, D0 );MOV( X2 , D0, D1 );
在ST语言中我们是这样表示的
有没有觉得很简了
当然我们的的启动条件可以任意我串并联只要你开心想串几个都可以
二,MOVP传送指令
和我们的MOV传送指令一样只是加多了一个P
但是加多了一个P效果完全不一样
比如我们接通M0后会把T0的值一直传送送给D1
但是如果我们用MOVP的话无论我们的T0现在的值是多少他都只是传送了1过来,这个就是我们MOVP上升沿传送指令只大接通的一个周期有效
在我们的ST语言中MOVP的表示和我们的MOV一样
MOVP( ?BOOL_EN? , ?ANY16_s? , ?ANY16_d? );
BOOL_EN:我们的启动条件可以是X、Y、M等等
ANY16_s:我们的源操作数
ANY16_d:我们的目标操作数
SET(X1,M0);OUT_T(M0,TC0,k9999);MOVP( M0 , TN0 , D0 );
是不是很简单了??
三,FMOV多点传送指令
它的功能是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。
比如现在没有按下X1时D0 到 D9是没有状态值的
在我们按下X1之后开始把K100 传送给D0 到 D9这
K10 代表的是传送个数,K100是值 D0是开始时的第一个位置
在我们的ST语言中功能也是一样只是写法不一样
FMOV( ?BOOL_EN? , ?ANY16_s? , ?ANY16_n? , ?ANY_d? );FMOV( X1, k100, k10 , D0 );
BOOL_EN:表示我们的开关输入信号
ANY16_s: 表示设定传送值
ANY16_n: 传送个数
ANY_d: 开始位置 (D、Z)
最后我们的结果也是一样
四,FMOVP指令
FMOVP ( X1, k100, k10 , D0 );
和我们的FMOV指令一样的效果
只是他只能在第一个扫描周期运行
我们加了P就表示上升沿的意思
五,BMOV成批传送指令
对指定点数的多个数据进行成批传送(复制)。
和我们的的FMOV多点传送指令相似
BMOV是以D作为传送的介质
比如我们可以看到D1 D2 D3设置了值
这个时候我们的D11 到 D13的值为0的
当我们接通M0时,D1=D11 ,D2=D12 D3=D13
这就是成批传送的用法
聪明的你可以看出来BMOV D1为开始的地址 D11为接收时开始的地址 K3代表的是个数 3个嘛。
在我们的ST语言中功能一样写法不一样
BMOV( ?BOOL_EN? , ?ANY_SIMPLE_s? , ?ANY16_n? , ?ANY_SIMPLE_d? );
我们还原一下上面的梯形图
D1:=100;D2:=200;D3:=300;BMOV( M0 , D1 , K3, D11 );
当我们接通M0时D1~D3开始把自己的值传送到D11~D13
怎么样是不是很简单了
你会了这加上我说的加个P就是代表上升沿的意思同理,我们BMOVP指令也是一样的只有接通的第一个扫描周期有用。
还在很多传送指令我这就不一一例出来了,我这列出的几个是大家常用的传送指令。
|