培训三设备所用717基本编程教材.docx
《培训三设备所用717基本编程教材.docx》由会员分享,可在线阅读,更多相关《培训三设备所用717基本编程教材.docx(30页珍藏版)》请在冰豆网上搜索。
培训三设备所用717基本编程教材
整体概述
717基本编程
编程的基本单元是图形,用户程序以图形来管理。
即DWG;图形有父图,子图,孙子图等其他。
我们讲解基本编程。
所用只解说父图,子图,孙子图。
父图是执行条件满足时,系统自动程序自动执行。
可以不用理会。
其他均通过SEE来调用。
列举H,H02,H02.01;和投光灯调用程序(通过子图调用孙子图)(添加DWG属性讲解)。
图的分级结构:
对于用户功能块的编制,用户函数必须提前定义以便将其输入。
样例程序
1.选择FSTART命令。
2.输入函数名。
显示函数的表达式。
以下对输入、地址输入及输出区进行编程。
每一区的输入举例用样例程序进行解释。
●输入区
对比特型数据(由B-VAL定义)的输入区如下进行编程。
1. 输入N.O.触点命令。
2. 选择FIN命令。
函数的输入参数与N.O.触点命令相关联
对整数型数据(由I-VAL定义)、倍长整数型数据(由L-VAL定义)或实数型数据(由F-VAL定义)的输入区如下进行编程。
1. 输入入口命令。
2. 选择FIN命令。
函数的输入参数与入口命令相关联。
对整数型数据(由I-REG定义)、倍长整数型数据(由L-REG定义)或实数型数据(由F-REG定义)的输入区如下进行编程。
1.选择FIN命令。
函数和寄存器号(或常数)的输入参数将相互关联。
2.输入寄存器号(或常数)。
●地址输入区
地址输入区的编程如下。
1.选择FIN命令。
2. 输入寄存器号。
●输出区
1.选择FOUT命令。
函数和线圈命令的输出参数将相互关联。
717编程的数据类型为:
YASKAWA(安川)PLC寄存器类型及表示
字地址(WORD)
位地址(BIT)
功能及含义
MWnnnnn
MBnnnnnn
程序寄存器,MBnnnnnn对应MWnnnnn的一位
MWnnnnn及MBnnnnnn在全部程序中通用
DWnnnnn
DBnnnnnn
子程序寄存器,DBnnnnnn对应DWnnnnn的一位
DWnnnnn及DBnnnnnn只在子程序中有效
Iwnnnnn
IBnnnnnn
输入寄存器,IBnnnnnn对应IWnnnnn的一位
IWnnnnn及IBnnnnnn在全部程序中通用
Ownnnnn
OBnnnnnn
输出寄存器,OBnnnnnn对应OWnnnnn的一位
OWnnnnn及OBnnnnnn在全部程序中通用
SWnnnnn
SBnnnnnn
系统寄存器,SBnnnnnn及SWnnnnn为系统专用寄存器,有特定含义,用户只可利用,不可定义.
存储器标示:
MB003606MB00360F
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
MW00360
结合开闭锁程序讲解字位转化L22.31
1.指针标识
2.内存地址
3.寄存器区
4.图3.1指针标识
在图3.1中,MA00100表示MW00100的内存地址nn。
通过把MA00100交给功能,从MW00100起的寄存器区域可用于功能的内部处理。
象这样利用地址作为功能的参数被称为“指针标识”。
用这种方法,从MW00100起的寄存器区域可任意用于位、整数、双长度整数、实数。
功能寄存器
类型
名称
标识方法
描述
特点
X
功能输入寄存器
XB,XW,XL,XFnnnnn
输入到功能
位输入:
XB000000到XB0000F
整型输入:
XW00001到XW00016
双整型输入:
XL00001到XL00015
寄存器号码nnnnn是十进制表示法。
Y
功能输出寄存器
YB,YW,YL,YFnnnnn
从功能输出
位输出:
YB000000到YB0000F
整型输出:
YW00001到YW00016
双整型输出:
YL00001到YL00015
寄存器号码nnnnn是十进制表示法。
Z
功能内部寄存器
ZB,ZW,ZL,ZFnnnnn
对每个功能唯一的内部寄存器。
可用于功能的内部过程。
寄存器号码nnnnn是十进制表示法。
A
功能外部寄存器
AB,AW,AL,AFnnnnn
用地址输入值作为基地址的外部寄存器。
为与(S,M,I,O,#,DAnnnnn)联接。
寄存器号码nnnnn是十进制表示法。
#
#寄存器
#B,#W,#L,#Fnnnnn
(#Annnnn)
仅能用于程序中的寄存器。
仅能涉及相关功能,用户指明CP-717的实际使用范围。
寄存器号码nnnnn是十进制表示法。
D
D寄存器
DB,DW,DL,DFnnnnn
(DAnnnnn)
对每个功能唯一的内部寄存器。
仅能涉及相关功能。
用户指明CP-717的实际使用范围。
寄存器号码nnnnn是十进制表示法。
一个比较典型的功能块对应关系是编码器位置计算。
功能块内外的对应关系为:
输入第一个(数据类型:
整数)对应内部为Xx0001,对于开关量MB输入第一个对应内部XB000.依次往下.
输出YW01对应外围第一个.依次往下.
基本指令
1带[]的指令
2子图调用指令(SEE)
3FOR结构语句;FOR,WHILE,IF结构语句内部可包含其他结构语句,这叫“嵌套”
添加C++讲解
例:
FOR(INTI==0;I++;I<10)
{…….
………
…….};
4WHILE结构语句.
[例子]从MW00100到MW00199总共100个寄存器,存储在MW00200。
5IF结构语句
[例子]如果MB00010包含正数那么MW00011的内容置0;如果MW00010包含负数那么置1。
结合舱盖板模式讲解;(H17.03中).
6注释指令(COMMENT)结合投光灯讲解.
注释可以写在DWG程序或用户功能程序中的任何位置。
字母数字字符可用于注释。
[格式]“字符串”
[描述]被“”号包围的字符串被认为是注释。
因为仅仅是注释,所以未执行任何指令。
要知
道在用户程序中它是每步的目标。
注意
编制程序不能在系列顺序指令分支中包含注释命令。
编制程序不要在接触指令间包含注释指令。
顺序回路指令
NO,NC及COIL指令省略不讲,只强调在编程时左右母线必须是连接的,不能有断线处。
否则程序不能执行下面的。
7线圈设置指令(S)/线圈复位指令(
)
在程序中只有最后加的舱盖板模式中用到了。
[描述]:
当执行条件满足时,线圈设置指令把输出打开(ON),并维持打开(ON)状态。
相反地,当执行条件满足时,线圈复位指令把输出关闭(OFF),并维持关闭(OFF)状态。
8上升脉冲指令(
)
程序中用的很多,需掌握。
[描述]当直接优先的B寄存器状态从OFF变成ON时,伴随着上升脉冲,B寄存器的状态变
成ON并在一个扫描周期内保持ON状态。
指定的寄存器用来存储B寄存器原来值。
9下降脉冲指令(
)
在程序中用的少,只做为了解就可以了。
10。
(1)接通_延时定时器指令:
计量单位=0.01秒(
)
(2)接通_延时定时器指令:
计量单位=1秒(
)
在程序中用的最多,在故障检测中如H33.H36。
11.1,断开_延时定时器指令:
计量单位=0.01秒(
)
2,断开_延时定时器指令:
计量单位=1秒(
)
逻辑操作指令
AND(∧)、OR(∨)和XOR(⊕)指令是可用到的逻辑操作指令。
12.AND指令
[格式]∧通俗就是电路中的串联。
逻辑积(AND:
A∧B=C)的1位真值表
在程序中手柄编码器取值用到。
H03.
13OR指令
[格式]∨通俗就是电路中的并联。
14XOR指令
基本很少用,不作讲解。
可以了解。
1.继电器回路组合的例子
串联回路的例子
下面的例子是继电器以串联方式连接,并且它们的逻辑结果输出给线圈。
分支并联回路的例子
分支指示元素用来把B寄存器的内容分成几部分。
并行连接指示元素决定多个继电器的逻辑和
(OR)。
在下面的例子中,继电器以串联或并联的方式连接,结果输出到一个或多个线圈。
(例1)简单分支且并联的例子
(例2)使用几个分支和并联的例子
1.分支并联
数字操作指令
15整型数输入指令
[格式]
任意整型寄存器
任意带下标的整型寄存器
任意双长度整型寄存器
任意带下标的双长度整型寄存器
下标寄存器
常量
[例子]MW00100内容键入A寄存器。
ML00100内容键入A寄存器
16实数型输入指令
[格式]
任意整型寄存器
任意带下标的整型寄存器
任意双长度整型寄存器
任意带下标的双长度整型寄存器
任意实数型寄存器
任意带下标的实数型寄存器
下标寄存器
常量
注意
下面的使用方式不允许。
17存储指令
[格式]
整型寄存器(除#和C寄存器外)
带下标的整型寄存器(除#和C寄存器外)
双长度整型寄存器(除#和C寄存器外)
带下标的双长度整型寄存器(除#和C寄存器外)
实数型寄存器(除#和C寄存器外)
带下标的实数型寄存器(除#和C寄存器外)
下标寄存器
18加法指令(+)
[描述]加法指令执行整型、双长度整型和实数型值的加法。
如果整型数值加法的结果大于
32767,将出现溢出错误。
如果双长度整型数值加法的结果大于2147483647,将出现溢出错误。
注意
在双长度整型数值情况下,使用加法和减法指令(+,-,++,--)的运算是32位的运算。
然而,当加法或减法用于余数校正运算(其中乘法指令(×)是立即优先指令,除法指令(÷)是立即优先指令)时。
19减法指令(-)
[描述]减法指令执行整型、双长度整型和实数型值的减法。
如果整型数值减法的结果小于
-32768,将出现溢出错误。
如果双长度整型数值减法的结果小于-2147483648,将出现下溢错误。
[例子]整型数值的减法
实型数值的减法
20扩展加法指令(++)
[描述]扩展加法指令执行整型数值的加法。
即使运算结果溢出也不出现运算错误。
此外,在功
能上,扩展加法指令等于加法指令。
[例子]该指令用于在整型数值的加法中不希望出现运算错误的情况。
21扩展减法指令(--)
[例子]该指令用于在整型数值的减法中不希望出现运算错误的情况。
22乘法指令(×)
23除法指令(÷)均与上面相同。
省略不讲
24递增指令(INC)
[格式]INC整型寄存器(除#和C寄存器)
带下标的整型寄存器(除#和C寄存器)
双长度整型寄存器(除#和C寄存器)
带下标的双长度整型寄存器(除#和C寄存器)
下标寄存器
描述]INC指令给指定的整型或双长度整型寄存器加1。
用整型寄存器运算,即使运算结果超过32767也不出现溢出运算错误。
此外,用双长度整型寄存器时,也不出现溢出运算错误。
[例子]整型
双长度整型
25递减指令(DEC)
[格式]DEC任意整型寄存器(除#和C寄存器)
任意带下标的整型寄存器(除#和C寄存器)
任意双长度整型寄存器(除#和C寄存器)
任意带下标的双长度整型寄存器(除#和C寄存器)
下标寄存器
[描述]DEC指令从指定的整型或双长度整型寄存器减1。
用整型寄存器运算,即使运算结果超过-32768也不出现下溢运算错误。
此外,用双长度整型寄存器时,也不出现下溢运算错误。
[例子]整型
双长度整型
数字转换指令
26符号取反指令(INV)
[格式]INV
[描述]将A寄存器或F寄存器内容的符号取反。
[例子]整型数据(A寄存器)
双长度整型数据(A寄存器)
实数型数据(F寄存器)
27绝对值转换指令(ABS)
[格式]ABS
[描述]计算A寄存器或F寄存器中值的绝对值。
[例子]整型数据(A寄存器)
28比较指令
有6种比较指令,用于比较数据和检查等价关系。
[格式]<任意整型寄存器
≦任意带下标的整型寄存器
=任意双长度整型寄存器
≠任意带下标的双长度整型寄存器
≧任意实数型寄存器
>任意带下标的实数型寄存器
下标寄存器
常量
[描述]比较指令把立即优先A或F寄存器和指定寄存器的比较结果存储在B寄存器中(当值为真时,其状态为ON)。
如果比较结果被线圈指令接受,结果将保持并影响下面的指令。
数据操作指令
29字转移指令(MOVW)
[例子]把MW00000到MW00009的内容转移至MW00100到MW00109
MOVWMW00000=>MW00100W=00010
30表初始化指令(SETW)
[描述]SETW指令把指定的数据作为转移的数据,存储在由转移目的寄存器号和转移字数指定的所有寄存器中。
每次存储1个字,寄存器号增加
DDC指令(直接数字控制)
31上下限指令(LIMIT)
32一阶滞后指令(LAG)
LAG运算的表达如下:
Y/X=1/(1+T*S);即T*(dY/dt)+Y=X
例;
同时,结合3#QC手柄优化功能讲解。
33函数生成指令(FGN)
如果在FGN指令的参数表中设置的数据为Xn和Yn,它们必须设置成Xn≦Xn+1。
FGN指令在参数表中寻找一组满足Xn≦X≦Xn+1的Xn/Yn值,并根据下面的公式计算输出值Y:
Y=Yn+(Yn+1-Yn)/(Xn+1-Xn)×(X-Xn)(1≦n≦N-1)参数中的数值与输入值X和输出值Y的关系如图4.10所示:
结合手柄讲解H03中。
另外补充:
格雷码知识。
格雷码又叫反射码或循环码,它是一种数学排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。
它在任意两个相邻的数之间转换时,只有一个数位发生变化,1)它大大地减少了由一个状态到下一个状态时逻辑地混淆,2)减少了数字电路产生的尖峰电流脉冲,3)减少了对硬件模块和信号传输的要求,4)提高了可靠性。
二进制码
格雷码
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
0101
0111
6
0110
0101
7
0111
0100
8
1000
1100
9
1001
1101
10
1010
1111
11
1011
1110
12
1100
1010
13
1101
1011
14
1110
1001
15
1111
1000
2.1.2格雷码与二进制码转换
二进制码转换格雷码
格雷码高位等于二进制码高位,次高位等于二进制码高位与二进制码次高位相异或。
格雷码转换二进制码
二进制码高位等于格雷码高位,次高位等于二进制码高位与格雷码次高位相异或。
快捷操作方式。