(原) Inovance 汇川PLC学习

原创文章,请后转载,并注明出处。

项目中使用 台达PLC+研控电机 的组合出现问题,现在改用汇川H3UPLC来处理,所以需要继续学习。以下记录主要针对此款PLC。

辅助继电器M/SM

一般用 M0-M499
保持用 M500-M1023 M1024-M7679
特殊用 M8000-M8511 SM0-SM1023

M8000 运行中接通(常开)
M8002 运行瞬间接通,常用于执行一次的初始化操作
M8012 100ms脉冲
M8030 电池发光二极管熄灯指令
M8033 停止时保持输出
M8034 输出全部禁止
M8039 恒定扫描

状态继电器S

没有采用STL编程方式时,可当作普通位元件

定时器T

100ms: T0-T191
100ms: T192-T199(子程序使用)
10ms:T200-T245
1ms: T256-T511
1ms累计型:T246-T249(停电保持)
100ms累计型:T250-T255(停电保持)

计数器C

一般用16b: C0-C99
保持用16b: C100-C199
一般用32b: C200-C219
保持用32b: C220-C234
保持用32b: C235-C255 高速

寄存器

一般用:D0-D199
保持用: D200-D511(可设置为非保持)
保持用: D512-D7999
特殊用:D8000-D8511
变址用:V0-V7 Z0-Z7 (类似V0+Z0可组合成32位)
保持用:R0-R32767
特殊用:SD0-SD1023

常数变址:MOV K5Z0 D10 将Z0的值加上5后,给寄存器D10。Z0的值不变。

文件寄存器

R0-R32767 掉电保存

标号

P0-P511 与LBL指令配套使用

常数

十进制:K表示 16Bit指令中,K为-32768到32767
十六进制:H表示 16Bit指令中,H为0000-FFFF
BCD:以4位二进制表示的数
32浮点数:E表示

标号和子程序

指针L用于跳转程序的入口地址和子程序启始地址的标识 L0-L127
指针I用于中断程序的启始地址标识 
I00x(X0) I10x(X1) I20x(X2) I30x(X3) I40x(X4) I50X(X5)
x=0 上升沿中断  x=1 下降沿中断
I600 I700 I800 定时中断
I010 I020 I030 I040 I050 I060 高速计数器中断
标号/跳转指针P用于跳转程序的入口地址标识

子程序概述

子程序命名格式 SBR_xxx 中断子程序 INT_xxx CNC子程序 CNCxxx 运动控制子程序 MC_xxx

中断程序中不允许调用子程序

子程序中,变量类型为IN或OUT,表示参数和输出值

PLC程序开始运行时,默认为中断禁止状态。执行了EI语句后,中断功能允许;执行DI语句后,中断禁止。

编号 上升沿中断 下降沿中断 禁止中断
X00 I001 I000 M8050
X01 I101 I100 M8051
X02 I201 I200 M8052
X03 I301 I300 M8053
X04 I401 I400 M8054
X05 I501 I500 M8055
X06 I561 I560 M8080
X07 I571 I570 M8081

当M8050之类寄存器为ON时,其对应的中断事件被禁止

定时中断

I6xx:M8056(禁止中断寄存器)
I7xx:M8057
I8xx:M8058

xx为1-99,例如I710=每10ms的定时中断

计数完成中断

与DHSCS的比较置位指令一起使用。

I010.I020.I030.I040.I050.I060.I070.I080 M8059(禁止中断寄存器)

脉冲完成中断

定位指令脉冲输出完成后产生中断并执行中断程序

端口号 中断编号 禁止中断
Y00 I502 M8090
Y01 I503 M8091
Y02 I504 M8092
Y03 I505 M8093
Y04 I506 M8094

TCPSTA S1 S2 S3 S4 S5 D 获取TCP连接状态

IP地址为:S1.S2.S3.S4,当IP地址为127.0.0.1时,表示获取本地端口连接数

S5为端口号:当IP地址为127.0.0.1时,为本地端口

D连接状态:当为127.0.0.1时,为本地端口连接状态:-1 未监听 ;其它值:当前端口连接数 ;

当为其它IP地址,为远程服务器连接状态:

-1:未配置
0:关闭
1:侦听
2:连接请求
3:连接确认
4:连接建立
5:
6:
7:
8:
9:
10:

TCPCON S1 S2 S3 S4 S5 建立/关闭连接

以太网特殊寄存器

SM364 以太网处理繁忙
SM365 不在线
SM366 以太网功能停止:0启动 1停止
SD364 以太网从站侦听端口
SD365 不在线从站站号
SD369 超时时间(单位10ms),默认20
SD370-SD373: IP地址

MOV K4M100 D20 或 MOV D10 K4M80 其中K4M100表示将M100.M101.M102…M115共16个单元,组成一个字的单元进行读操作(M100作为字的Bit0…M115作为字的Bit15),这样可以提高编程效率。

备: 内部以4位为一组,K4表示4组,即16位


指令 功能 参数 说明
LD 常开接点
LDI 常闭接点
AND 串常开
ANI 串常闭
OR 并常开
ORI 并常闭
LDP 上升沿
LDF 下降沿
INV 取反
BLD 指定位的状态 S 源数 n 位 BLD 16 3 结果为OFF ; BLD 16 4 结果为ON
BLDI
MEP 上升沿导通 将运算结果脉冲化
MEF 下降沿导通
OUT 驱动线圈
SET 置位
RST 清除
PLS 上升沿ON
PLF 下降沿ON
ALT 交替ON/OFF
BOUT 某位置1,不保持 S 源数据 n 位 BOUT D100 2 ;当D100初始值为2#1010时,结果为2#1110。当条件OFF时,置位将被恢复
BSET 某位置1,且保持
BRST 某位置0,且保持
MC/MCR 主控指令 第1个参数为层级N0-N7,第2个参数是?? 程序块,当条件为OFF时,程序块内不执行
WDT 监视器复位 软件狗
CALL 子程序调用 循环中可采用T192-T199或T246-T249作为定时器
SRET 子程序返回
SSRET 子程序带条件返回
IRET 中断程序完毕
EI 中断许可
DI 中断禁止
CJ 条件跳转
LBL 标号
CJEND 条件跳转到程序结束位置
FOR 循环开始 当前值小于条件时循环,即条件为2,则执行1次循环
NEXT 循环结束
LD= LD< LD<> LD> LD>= LD<= 16位使用LD,32位使用LDD
AND/OR 与/或比较
LD& LD| LD^
AND& AND AND^
OR& OR OR^
FLD 比较两操作数大小
LDZ 绝对值比较 将S1与S2相减后结果的绝对值与S3的绝对值进行比较
CMP 数据比较 根据S1与S2的比较结果,设置D、D+1、D+2其中一个为ON
ECMP 二进制浮点比较 同上,只是类型为浮点数
ZCP/EZCP 区间比较 根据S所处区间(S<S1,S1≤S≤S2,S>S2)置D,D+1,D+2,其中一个为ON
ADD 二进制加 计算结果为0,则0标志(M8020)会置位
SUB 二进制减
MUL 二进制乘 积大于16bit,需用到D的相邻高位
DIV 二进制除 商存放地址D,余数存放在D+1
ABS 计算绝对值
INC/DEC 加1/减1
WAND/WOR/WXOR 二进制逻辑与/或/异或
NEG 二进制求补 对D进行逐位取反、再加1
WSUM 多数据求和 WSUM D100 D120 K6 ; 将D100开始的6个元件求和,放入D120
MEAN 平均值
LIMIT 上下限位 [S1]>[S3]时,[S1]→[D]; [S2]<[S3]时,[S2]→[D]; [S1]≤[S3]≤[S2]时,[S3]→[D]。
BZAND 死区控制 [S1]>[S3]时,[S3]-[S1]→[D]; [S2]<[S3]时,[S3]-[S2]→[D]; [S1]≤[S3]≤[S2]时,0→[D]
ZONE 区域控制 [S3]<0时,[S3]+[S1]→[D]; [S3]>0时,[S3]+[S2]→[D]; [S3]=0时,0→[D]
INT 浮点取整
BCD 二进制数据转换BCD数据 BCD D200 K1Y0 ;将D200结果存于K1Y0中(Y0-Y3四个Bit元件)
BIN BCD转二进制
DABIN 10进制ASCII转BIN数值 将以ASCII值存储的数据转换出来,如2DH为-号,30H-39H为0-9
将存储于S-S2的10进制ASCII转换为16位数据 S0.15-S0.8 万位,S0.7-S0 符号位,S1.15-S1.8 百位,S1.7-S1.0 千位,S2.15-S2.8 个位,S2.7-S2.0 十位
BINDA BIN转ASCII码(与上相反)
WTOB 16位数据按8位分离 S 源数据 D 目标地址 n 分离多少个 分离后的结果:高位置零,低位存于D及D1
BTOW 与上相反
UNI 将连续的16位数据的低4位结合在一起
DIS 与上相反
ASCI HEX->ASCII
HEX ASCII->HEX
EMOV 浮点传送
SMOV 移位传送 将源数据中某xx位移至目标数据;M8168决定是按BCD还是BIN模式移位
BMOV 数据成批传送 M8024=1时为反向传送
FMOV 一对多传送
CML 数据取反传磅
ZPUSH 变址寄存器批量保存 将变址寄存器的值保存到寄存器中
ZPOP 与上相反
ZRST 批量数据复位 将D1至D2区间的变量全部清0
SORT 数据按列升序排列 S表有m1行m2列,将其中第n列排序后存于D
SORT2 数据按行升降序排列 M8165置ON,降序排列
SER 数据查找 返回多个值:相等个数.第一个相等序号…
FDEL 数据表的数据删除 未读
FINS 数据表的数据插入 未读
ROR/ROL 循环右移/左移
RCR/RCL 带进位循环右移/左移
SWAP 上下字节交换
BON ON位判断
SUM ON位总数
RND 产生随机数 0-32767
XCH 数据交换
RS 串行数据传送
MODBUS MODBUS通讯
CCD 校验码
CRC CRC校验码
LRC LRC校验码
STR BIN转字符串 MOV K6 D0 ; MOV K2 D1 ;STR D0 D10 D20 ; 将D10中的数字转换为一共6个字符,带两个小数位的字符串。不足6个8位用前置空格。结果存于D20.D21.D22.D23。D23保存00H或0000H表示结束。
VAL ASCII转BIN VAL D20 D10 D0 ; 将D20保存的字符串转换为数据保存于D0(无小数位),总位数D10,小数位数D11
$+ 字符串连接
LEN 字符串长度
INSTR 字符检索
LEFT/RIGHT/MIDR 左取/右取/任意取
MIDW 字符替换
$MOV 字符传送
TCMP 时钟数据比较 与内部实时时钟进行比较
TZCP 时钟区间比较
TADD/TSUB 时钟加/减
HTOS/STOH 时间转秒/秒转时间
TRD/TWR 读/写PLC时钟
HOUR 计时表 单位:小时 ; HOUR K2000 D300 Y10 ; 将持续小时存于D300,不满1小时的秒记录在D301,当D300达到2000小时后,Y10为ON,累计计时仍继续。重计时需D300.301清除为0
TTMR 获取按键时长
STMR 特殊定时器 未理解
DUTY 定时脉冲 定时脉冲ON/OFF,输出目标地址M8335-M8339
REF 输入输出刷新指令 将S地址开始的n个元件状态立即更新;S地址必须为X或Y最低位为0的编号元件,例如X0,X10,Y20
REFF 输入滤波时间调整

现在的一个任务是通过EtherNet与基恩士相机通讯,获取视觉信息。

相关文章