0%

GB_tpl001.ept 模版(图框、表格、符号库)国标;内置中国的标准,GB。

GOST_tpl001.ept 模版 俄罗斯标准。

IEC_tpl001.ept 国际电工委员会,国际标准。

Inch_tpl001.ept 日本工业委员会标准。

NFPA_tpl001.ept美国消防协会标准。

Num_tpl001.ept 国际电工委员会标准,按顺序编号。

项目结构

功能面结构
描述系统的作用,在eplan用‘=’表示,高层代号。
位置面结构
系统的位置,定位,用‘+’表示,位置代号。
产品面结构
系统的构成,用‘-’表示。

  • 取模运算的本质是求除法的余数
  • 余数 = 被除数 - (除数 × 商)
    例如,下面的程序可以求出一个三位数字的每一位数字,并存储在一个单独的寄存器中。
    求模
    在这个程序中,三位数字存储在D0中,个、十、百位数字分别存储在D1、D2、D3中。
    上面的程序只能处理正数,对于负数求模,应该先得到这个负数的相反数,再对这个相反数按照上面的方式求模,最后将得到的模再求相反数,就得到了这个负数的模。

方法一:使用两个定时器,优点是可以分别控制灯亮和灯灭的时间。但缺点是使用定时器多。
两定时器实现闪烁电路
方法二:使用一个定时器,但要使用比较指令进行比较,也可控制灯亮灭时间。
单定时器使用比较指令

子程序调用

1、子程序调用指令:CALL。例如CALL P0
2、子程序返回指令:SRET。
3、子程序用指针:Pn。
4、主程序结束指令:FEND。

如果X0= “ON”,则执行调用指令,跳转到标记为P10的子程序步。在这里,执行子程序后,通过执行SRET指令后,返回到原来的主程序步,接着继续执行后续的主程序。

在后述的 FEND 指令后对标记编程。
在子程序内可以允许有 9 次调用指令,整体而言可做10 层嵌套。

调用子程序时,主程序所属的OUT、PLS、PLF、定时器等均保持。

子程序返回时,子程序所属的OUT、PLS、PLF、定时器等均保持。

子程序中不要写脉冲、计数、定时等一个扫描周期内无法完成的指令。

CALL 指令和子程序指针 P 必须要配合使用,否则会报错“不存在的标号类型”。
子程序

中断

  1. 允许中断[EI]
  2. 禁止中断[DI]
  3. 中断返回[IRET]
  4. 中断子程序用指针:In
  5. 主程序结束指令:FEND

XC系列PLC中断功能分两种:一、外部中断:二、定时中断。

外部中断(IO中断):输入端子X 可以作为外部中断的输入用,每一输入端对应于一个外部中断,输入的上升沿或者下降沿都可触发中断,中断子程序写在主程序之后(FEND 命令之后)。当产生中断后,主程序立即止执行,转而执行相应的中断子程序,等中断子程序执行完成后,再立即返回继续执行主程序。

定时中断:在主程序的执行周期很长的情况下,如果要处理特定的程序;或者在顺控扫描中,需要每隔一段时间执行特定的程序时,定时中断功能非常适用。它可以不受可编程控制器的扫描周期的影响,每隔Nms执行定时中断子程序。
中断
在中断子程序里,只能写简单的置位、复位、传送、运算等可以在一个扫描周期内执行的指令,其他如发脉冲、定时(精确定时除外)、通讯等需要持续执行的指令均不支持。

助记符功能
CMP数据比较
ZCP数据区间比较
MOV传送
BMOV数据块传送
PMOV数据块传送
FMOV多点重复传送
EMOV浮点数传送
FWRTFlashROM 的写入
MSET批次置位
ZRST批次复位
SWAP高低字节交换
XCH两个数据交换

16位和32位传送指令(MOV,DMOV)

16位传送指令:MOV
32位传送指令:DMOV
将指定软元件中的数据照原样传送到另一个软元件中。

MOV K10 D10:将K10传送到D10,就是把十进制的10赋值给D10。
将K10传送到D10
运算结果以32位输出的应用指令(MUL等)、32位数值或32位软元件的高速计数器当前值等数据的传送,必须使用DMOV指令。
DMOV D0 D10 :将D1和D0中的数据传送到D11和D10中。
将D1和D0中的数据传送到D11和D10中

数据块传送(BMOV)

将指定的软元件的数据照原样传送到其他软元件中。
BMOV D5 D10 K3
将D5开始的三个字,即D5,D6,D7批量传送到D10开始的三个字,即D10,D11,D12
将D5开始的三个字,即D5,D6,D7批量传送到D10开始的三个字,即D10,D11,D12。
注意:使用BMOV指令不要产生数据重叠。

数据块传送(PMOV)

本指令比BOMV效率更高。
PMOV和BMOV使用方法一样。
PMOV D5 D10 K3
PMOV指令的使用

16位多点重复传送和32位多点重复传送(FMOV,DFMOV)

16位多点重复传送(FMOV)

FMOV K0 D0 K10:将K0传送至D0~D9,同一数据多点传送指令。
FMOV指令的使用

32位多点重复传送(DFMOV)

DFMOV D0 D10 K3:将D0、D1中的内容传送到D10、D11;D12、D13;D14、D15。
DFMOV指令的使用

浮点数传送(EMOV)

EMOV K3.14 D0:将3.14传送到D0、D1中
EMOV指令的使用
EMOV D0 D10:将D0、D1传送到D10、D11
EMOV指令的使用
常数K、H被指定为源数据时,自动转换为2进制浮点数。
K500自动二进制浮点化。

FlashROM写入(FWRT)

单字的写入
FWRT D0 FD0:将D0里面的值写入到FD0中
双字的写入
DFWRT D0 FD0:将D0里的数据写入到FD0、FD1
多字的写入
FWRT D0 FD0 K3:将D0D2里的值写入到FD0FD2

批次置位(MSET)、批次复位(ZRST)

将指定范围的位软元件进行置位或复位操作。
MSET M10 M120:整体置位元件M10M120
ZRST M500 M559:整体复位位元件M500
M559
ZRST D0 D100:整体复位字元件D0~D100

高低字节交换(SWAP)

将指定寄存器的高8位字节和低8位字节进行交换。
SWAP D10 将D10这个16位寄存器的高8位和低8位交换。
上例中如果将条件X0改为常开或常闭线圈触发,当输入X0为ON时,每个扫描周期都执行一次该指令,所以建议用上升沿或下降沿触发。

交换指令(XCH)

将两个软元件中的数据相互交换。
16位指令
XCH D10 D11:把D10的数据放到D11,D11的数据放到D10
32位指令
DXCH D10 D20:把D10、D11中的数据和D20、D21中的双字数据交换。

助记符指令功能
LD=开始(S1)=(S2)时导通
LD>开始(S1)>(S2)时导通
LD<开始(S1)<(S2)时导通
LD<>开始(S1)≠(S2)时导通
LD>=开始(S1)≥(S2)时导通
LD<=开始(S1)≤(S2)时导通

注意:
当源数据的最高位(16位指令:b15,32位:b31)为1时,将该数值作为负数进行比较。
32位计数器的比较,必须以32位指令来进行。若指定16位指令时,会导致程序出错或运算错误。
比较指令。想比较32位数据,把LD改为DLD即可。
使用的指令:LD= K3 C0
当C0的计数达到3时,Y0被置位。
当C0的计数达到3时,Y0被置位。

PLC数据存储单位

PLC数据存储单位有:位、字节、字等。位是最小的存储单位,每个位存储一个1位的二进制数据。
位:只能存储0或1状态。
字节:一个字节有8个位。
字:一个字有两个字节。
双字:一个双字有两个字。

寄存器

数据寄存器是用于存储数据的软元件,包括16位(最高位为符号位)、32位(由两个数据寄存器组合,最高位为符号位)两种类型。

16位数据寄存器

一个16位的数据寄存器,其处理的数值范围为K-32,768~K+32,767。

32位数据寄存器

由两个地址相邻的16位数据寄存器组成的32位数据(高字在后,低字在前)
处理的数值范围为K-2,147,483,648~K2,147,483,647。
建议低位采用偶数软元件编号。

位软元件组合寄存器

一般用,16位(由连续的16个位元件组合而成)。
支持组合成字的软元件由X、Y、M、S、T、C。
格式:在软元件前加D,如DM10,表示从M10-M25组成的16位数。

数据寄存器的数据存储范围

位:0-1
字节:无符号:0~255。有符号:-128~127。
字:无符号:0~65535。有符号:-32768~32767。
双字:无符号:0~4294967295,有符号:-2147483648~2147483647。

使用数据寄存器处理数据

数据存储
MOV K100 D0:向D0内写入16位的十进制数100。
向D0内写入16位的十进制数100
DMOV K1000000 D10:向D11和D10内写入32位十进制数1000000。
向D11和D10内写入32位十进制数1000000
MOV D0 D10:将D0内数据传送给D10。
将D0内数据传送给
读取定时器或计数器
MOV C10 D0:将计数器C10的计数值读取到D0中。
将计数器C10的计数值读取到D0中
作为定时器或计数器的设定值:
TMR_A T0 D0 D2:T0的定时时间与D0中的数值相等时,T0置位。D2是时基。
T0的定时时间与D0中的数值相等时,T0置位。D2是时基
CNT HC0 D4:HC0的计数值与D4中的数值相等时,HC0置位。
HC0的计数值与D4中的数值相等时,HC0置位

16位增计数器

16 位二进制增计数器,其有效设定值为 K1~K32,767(十进制常数)。设定值 K0 和 K1 具有相同的
含义,即在第一次计数开始时输出触点就动作。

使用指令:CNT C0 K10,来计数0-10之间的数字,当计数大于等于10时,C0接通。
16位增计数器
注意:切断电源,计数器数值清零。

16位减计数器

指令:CNT_D C0 K-10
16位减计数器
上面梯形图的含义就是,当C0计数器从0减到-10时,C0接通。

32位增减计数器

计数器计数模式是32 位线性增/减模式(-2,147,483,648 ~+2,147,483,647),当计数器的计数值递增达到最大值 K2,147,483,647 会变成 K-2,147,483,648,当计数器的计数值递减达到最小值K-2,147,483,648 会变成 K2,147,483,647,计数器的 ON/OFF 状态也随计数值的变化而变化。
32位增减计数器
使用32位增计数器计数到1000000:DCNT C0 K1000000

DCNT_D即为减计数器。

不累计定时器

普通定时器不设专用指令,使用TMR指令进行定时;
采用程序存储器内的常数(K)作为设定值,也可用数据寄存器(D)的内容进行间接指定。
驱动输入断开或停电,定时器复位,输出触点复位。
指令格式:TMR T0 K200 K100
普通计时器
上例计时器的计时时间就是200乘100等于20000ms,也就是20s。
当T0计时器到达设定值的时候,定时器的输出触点动作。
使用定时器T0的常开触点:LD T0

累计定时器

累计定时器有掉电记忆功能。
累计计时器
上面的例子中,计时的时间为10s,在这10s中,X0断开后,再次启动X0,之前累积的时间不会清零。
当X1为1时,HT0被复位。使用的指令是:RST HT0。

定时器应用

小灯闪烁程序
要求: X0接通,小灯Y0亮0.5S,灭0.5S闪烁,断开X0,小灯停止输出。
小灯闪烁

输出延时关断
要求:按下装料按钮X0,装料电磁阀Y0输出5S的时间,时间到自动断开输出。(装料过程中再次按装料按钮无效)
输出延时关断

常开、常闭、线圈指令

  1. 常开触点指令:LD X0
    操作对象:X、Y、M、S、T、C、Dn.m、FDn.m
  2. 常闭触点指令:LDI X1
    操作对象:X、Y、M、S、T、C、Dn.m、FDn.m
  3. 线圈指令:OUT Y0
    操作对象:Y、M、S、T、C、Dn.m、FDn.m
    常开、常闭、线圈指令

上升沿、下降沿指令

  1. 上升沿指令:LDP X0
    当PLC检测到上升沿信号时,保持一个扫描周期的高电平。
  2. 下降沿指令:LDF X1
    当PLC检测到下升沿信号时,保持一个扫描周期的高电平。
    上升沿、下降沿指令

置位、复位指令

  1. 置位指令:SET Y0
    操作对象:Y、M、S、T、C、Dn.m
  2. 复位指令:RST Y1
    操作对象:Y、M、S、T、C、Dn.m
  • 对于同一软元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效。
  • 此外,定时器、计数器当前值的复位以及触点复位也可使用RST指令。
  • 使用 SET、RST 指令时,避免与 OUT 指令使用同一定义号
    置位、复位指令