前言:随便写写记录哈,方便学习查找。(以下均为个人笔记会有错误,仔细甄别后使用)
绿色代表不重要需要使用再查看,

黄色代表比较实用

红色表示重点

持续更新中................

1.汇川EASY硬件系统组成

1.型号与铭牌说明

2.部件说明 

 

3.输入输出接线

双向输入,当前示意图输出为NPN漏型输出

 4.内存分配

     字软元件

特殊软元件 

5.变量

 变量定义

IP变量定义使用

在TCP_Scoket 通信中IP支持使用 IP/DINT/POINT类型(详情见TCP_Socket通信章节)

如果使用Dint注意字排序方式

特定联合体的使用

特定联合体变量数据类型包括三种

如果di0 = 1000(32位)

指针的使用

建立指针

指针里面存放的是地址而不是数据

使用指针进行数据读写

当R0 =1 R1 =1

具体应用可以进行(一对一,一对多,多对多的数值赋值)

需求:把D1004的值,根据D0的设定,往100个连续的D元件D400-D499进行赋值。
如D0=0,将D1004的值给到D400;D0=1 ,则D1004的值给到D401

需求:把(D1006,D1007)的值,根据D0的设定,往100个连续的32位D元件D500-D699进行赋值。
如D0=0,值(D1006,D1007)的值给到(D500,D501);D0=1 ,则(D1006,D1007)的值给到(D502,D503)

需求:把M1002的状态,根据D0的设定,往100个连续的M元件M200-M299进行赋值。
如D0=0,M1002的值给到M200;D0=1 ,则M1002的值给到M201

数组

指令中使用数组时,如未输入数组下标,则从数组的第一个元素开始访问,如输入数组下标,则从下标指定 的元素开始访问。


结构体

可以通过导入导出来快捷建表。包括昆仑通态触摸屏+汇川的触摸屏

TCP

TCP_Listen

字符串

变量绑定地址


自定义变量绑定软元件之后,掉电保持属性会跟随绑定的软元件变化。


2.AutoShop编程软件的使用

新建工程

  1. 启动与新建:打开AutoShop软件,在菜单栏选择“文件 > 新建工程”。

  2. 命名与保存

    • 在弹出的对话框中,输入清晰的工程名称

    • 为工程选择合适的保存路径。强烈建议为每个新工程创建一个独立的文件夹,以便管理。

  3. 选择PLC类型:在新建工程时,需要选择PLC类型(例如H3U、H5U等)。此选择必须与实际使用的PLC型号严格一致,否则可能导致程序无法下载或运行异常。

  4. 选择编程语言:通常可以选择梯形图或其他支持的。

  5. 确认创建:点击“确定”按钮完成创建。

通信连接

  • 选择通信端口:确保有一根Type-C的USB编程线/以太网线/网关。USB线通常用于初始设置和程序下载,而以太网线用于网络通信和在线监控。

  • IP地址设置:对于以太网通信,首先需要为PLC分配一个固定的IP地址。可以通过USB连接后,在AutoShop的“通讯设置”中搜索设备并修改IP

全局变量

结构体

  1. 定义结构体:在应用程序下添加新的结构体,然后定义成员变量。

  2. 声明结构体变量:定义好结构体类型后,就可以像使用INT、BOOL这样的基本类型在变量表一样来声明变量了。

  3. 访问成员:使用“.”运算符来访问结构体内部的成员变量

软元件表

软元件表包含注释和内存管理两块功能
  • 用于批量修改当前页面的数据类型
  • 跳转功能,例如切换至D元件,输入1000,点击跳转或按Enter键,则页面自动跳转至D1000的位置。
  • 修改数据值列和当前值列的显示格式。
  • 可以添加注释

同步数据功能 — 将选择列的数据全部同步到菜单项选中的数据值列中,例如单击选择数据值1列的某个单元格右键选择同步到数据值2,则是将数据值1列的数据覆盖数据值2。


上载工程变量值与操作读取内存一致
将PLC的软元件变量值存入选择中的数据值中
 

可以配合汇川触摸屏使用导入变量快捷组态

功能块实例

FB块调用时需要实例化,当在主程序调用时自动生成

变量表

支持自定义变量,用户可以通过定义全局变量,在程序中直接使用变量名编程。
变量绑定地址
自定义变量支持绑定软元件地址,绑定后自定义变量的地址与软元件的地址关联

常用系统变量

Ethernet网口信息

可在变量表中监视本机的IP、MAC等信息。
参数路径数据类型描述权限
Ethernet.MACAddressINT[3]物理地址(MAC地址)只读
Ethernet.MACAddress[0]INTMAC地址第1部分只读
Ethernet.MACAddress[1]INTMAC地址第2部分只读
Ethernet.MACAddress[2]INTMAC地址第3部分只读
Ethernet.IPAddressDINT本机IP地址读写
Ethernet.MaskDINT子网掩码读写
Ethernet.GatewayDINT网关读写
IPCommandINTIP命令读写

 _DateTime:RTC时钟如下表所示

_DateTime.SecondINT[0, 60] (60为闰秒)只读D8013
_DateTime.MinuteINT[0, 59]只读D8014
_DateTime.HourINT[0, 23]只读D8015
_DateTime.DayINT日(月中的日期)[1, 31]只读D8016
_DateTime.MonthINT月份[1, 12]只读D8017
_DateTime.YearINT年份-只读D8018
_DateTime.WeekDayINT星期[0, 6] (0=星期日, 1=星期一)只读D8019
_DateTime.YearDayINT年累积日(从1月1日开始)[0, 365] (0代表1月1日)只读
_DateTime.TimestampDINT时间戳(从1970-01-01 00:00:00起的秒数)-只读

TWR

该指令将指定时钟数据S (含年/月/日/时/分/秒/星期)的7个数据写入PLC的内置实时时钟数据 。

特殊辅助继电器(M点)功能表

元件地址数据类型功能描述权限类别
M8000BOOL运行监视:PLC运行时始终为ON只读状态
M8001BOOL运行监视取反:M8000状态取反(PLC运行时为OFF)只读状态
M8002BOOL初始脉冲:用户程序开始运行的第一个扫描周期为ON只读脉冲
M8003BOOL初始脉冲取反:M8002状态取反(第一个扫描周期为OFF)只读脉冲
M8011BOOL10ms时钟:以10ms为周期(ON 5ms, OFF 5ms)的振荡时钟只读时钟
M8012BOOL100ms时钟:以100ms为周期(ON 50ms, OFF 50ms)的振荡时钟只读时钟
M8013BOOL1s时钟:以1s为周期(ON 0.5s, OFF 0.5s)的振荡时钟只读时钟
M8014BOOL1min时钟:以1min为周期(ON 30s, OFF 30s)的振荡时钟只读时钟

编程

程序块

右键可以设置看门狗与扫描周期时长

程序块中只有一个主程序,可以插入子程序与中断子程序

在程序执行过程中,当满足中断条件跳转到中断子程序中执行完毕后返回中断的位置继续执行,子程序是在CALL主动调用的


FB块

功能块 (FB) 可以把程序中重复使用的部分抽象封装成一个通用程序块,在程序中可以被重复调用。
功能块变量的属性:
在工具箱的“FB”节点下,双击FB指令进行实例化调用

可以导出FB,导入其他项目的FB中或者库使用
FB初始值

FB设置初始值可以通过FB类型或FB实例者两种途径进行修改。
如果是通过FB类型修改初始值,则修改类型的初始值。
如果是通过FB实例修改初始值,则修改实例的初始值。
如果修改实例初始值,则FB实例成员变量将显示修改后的值,且单元格背景颜色为黄色。
如果实例初始值没有修改,则FB实例成员变量显示默认值,单元格背景颜色为白色。

FC函数

函数(FC)是独立封装的程序块,程序块可以定义输入/输出类型参数,可以定义非静态内部变
量,即使用相同的输入参数调用某一函数时,得到的输出结果是相同的。
 
调用直接输入FC名称,按键盘Tab键即可。(不好用还是直接在工具箱调用吧)

导出与FB一致不再赘述

配置

输入滤波

设置输入滤波时长
 

模块配置

可以添加扩展模块并且进行配置

比如GL20-1600END扩展模块

部件说明

接线

变量监控表


交叉引用表

元件使用表

Trace

Trace功能类似于数字采样示波器,可以记录变量的历史值。

当我们的触发变量满足触发值的条件,就进行采样N个后后停止采样。


实时采集Y0的数据变化

未满足前一直采集,满足Y1条件后再采集100个Y0数据后停止采集

Y2为1记录采集,Y2为0不记录采集

快捷键

ALT+↑↓  快捷调整软元件地址

Ctrl+Shift+V 批量复制

F12 转到定义
仿真IP地址为:127.0.0.1

3.编程基础指令(梯形图)


3.1触点指令

指令助记符功能说明编程语言
LD加载常开触点LD
LDI加载常闭触点LD
LDP取脉冲上升沿LD
LDF取脉冲下降沿LD
MEP运算结果上升沿脉冲化LD
MEF运算结果下降沿脉冲化LD

指令助记符功能说明编程语言
OUT驱动线圈LD
SET置位动作保存线圈指令LD
RST接点或缓存器清除LD
ZSET全部数据置位LD、LiteST
ZRST全部数据复位LD、LiteST
PLS脉冲上升沿检测线圈指令LD
PLF脉冲下降沿检测线圈指令LD
ALT交替输出LD
R_TRIG上升沿检测指令LD、LiteST
F_TRIG下降沿检测指令LD、LiteST

指令助记符功能说明编程语言
INV运算结果取反LD

3.2流程控制指令

指令助记符功能说明编程语言
CJ条件跳转指令LD
LBL标号指令LD
CALL子程序调用指令LD
SSRET子程序待条件返回LD
EI中断许可LD, LiteST
DI中断禁止LD, LiteST
WDT监视定时器复位指令LD
FOR循环范围开始指令LD
NEXT循环范围结束指令

LD

条件跳转指令使用

WDT看门狗指令使用

FOR&NEXT

3.3 SFC指令

指令助记符功能说明编程语言
STL程序跳至副母线LD
RET程序返回主母线LD
OUTSTL输出程序跳至副母线LD
SETSTL置位程序跳至副母线LD
RSTSTL清除程序跳至副母线LD
SFC指令仅用于主程序,不能用于子程序和中断子程序等。(类似于顺序控制)

顺序控制从STL开始已RET结束

3.4触点比较

基本比较指令

指令助记符功能说明编程语言
LD=LD触点比较等于LD
LD>LD触点比较大于LD
LD<LD触点比较小于LD
LD<>LD触点比较不等于LD
LD>=LD触点比较大于等于LD
LD<=LD触点比较小于等于LD

逻辑运算触点指令

指令助记符功能说明编程语言
LD&LD逻辑与运算LD
LD|LD逻辑或运算LD
LD^LD逻辑异或运算LD

绝对值比较触点指令

指令助记符功能说明编程语言
LDZ>绝对值>比较的状态触点[S1-S2]>[S3]时导通LD
LDZ>=绝对值>=比较的状态触点[S1-S2]≧[S3]时导通LD
LDZ<绝对值<比较的状态触点[S1-S2]<[S3]时导通LD
LDZ<=绝对值<=比较的状态触点[S1-S2]≦[S3]时导通LD
LDZ=绝对值=比较的状态触点[S1-S2]=[S3]时导通LD
LDZ<>绝对值<>比较的状态触点[S1-S2]≠[S3]时导通LD

3.5数据运算

基本算术运算

指令助记符功能说明编程语言
ADD二进制数据加法LD
SUB二进制数据减法LD
MUL二进制数据乘法LD
DIV二进制数据除法LD
MOD二进制除法求余LD、LiteST

数据操作指令

指令助记符功能说明编程语言
INC二进制数据加一LD
DEC二进制数据减一LD
WAND二进制数据逻辑与LD
WOR二进制数据逻辑或LD
WXOR二进制数据逻辑异或LD
NEG二进制数据求补LD
ENEG二进制浮点数符号取反LD

NEG(二进制数据求补)

D0:求补前 2#1111 1111 1111 0100

      求补后 2#0000 0000 0000 1100

在PLC中数据是以二进制补码储存的

高级数学运算指令

指令助记符功能说明编程语言
EXP二进制浮点数据指数运算LD
LOGE二进制浮点数自然对数运算LD
LOG二进制浮点数以10为底的对数运算LD
ESQR二进制浮点开方运算LD
SQR二进制数据开方运算LD
POW浮点数幂运算指令LD

位处理指令

指令助记符功能说明编程语言
BLD字或双字位数据触点指令LD
BLDI字或双字位数据反触点指令LD
BOUT字或双字位数据输出指令LD
BSET字或双字位数据置位指令LD
BRST字或双字位数据复位指令LD

BLD(字或双字位数据触点指令)

D100 16->2#1000

第一条指令判断D100的第三位是否为1.

第二条指令判断D100的第四位是否为1

BOUT(字或双字位数据输出指令)

BSET(字或双字位数据置位指令)/BRST(字或双字位数据复位指令)

三角函数指令

指令助记符功能说明编程语言
SIN浮点SIN运算指令LD
COS浮点COS运算指令LD
TAN浮点TAN运算指令LD
ASIN二进制浮点数ARCSIN运算LD
ACOS二进制浮点数ARCCOS运算LD
ATAN二进制浮点数ARCTAN运算LD
RAD二进制浮点数角度→弧度的转换LD
DEG二进制浮点数弧度→角度的转换LD
SINH二进制浮点数SINH运算LD
COSH二进制浮点数COSH运算LD
TANH二进制浮点数TANH运算LD

表格运算指令

指令助记符功能说明编程语言
WSUM算出数据合计值LD
MEAN平均值计算LD
LIMIT上下限限位控制LD
BZAND死区控制LD
ZONE区域控制LD

WSUM(算出数据合计值)地址1 地址2 个数N

从地址1连续n个数相加结果放入地址2

LIMIT(上下限限位控制)                   下限           上限           判断值       输出值

下限<=判断值<=上限,则输出判断值
判断值<下限,则输出下限
判断值>上限,则输出上限

BZAND(死区控制)

ZONE(区域控制)S1 S2 S3 D

3.6数据转换

指令助记符功能说明编程语言
INT二进制浮点→BIN整数的转换LD
BCD二进制数据转换BCD数据LD
BINBCD数据转换二进制数据LD
FLT二进制数据→二进制浮点数转换LD
EBCD二进制浮点→十进制浮点转换LD
EBIN十进制浮点→二进制浮点转换LD
DABIN10进制ASCII→BIN的转换LD
BINDABIN→10进制ASCII的转换LD
WTOB字节单位的数据分离LD
BITW位元伴随值给字元件LD
BTOW字节单位的数据结合LD
WBIT字元伴随值给位元件LD
WTODW16位字元件转换成32位字元件LD
DWTOW32位字元件转换成16位字元件LD
MCPY数据复制(内存拷贝、类型变换)指令LD
MSET数据设置(内存设置和复位)指令LD
UNI16位数据的4位结合LD
DIS16位数据的4位分离LD
ASCIHEX→ASCII转换LD
HEXASCII→HEX转换LD
DECO数据解码LD
ENCO数据编码LD
SCALE_X缩放指令LD
NORM_X反缩放-标准化指令LD
ROUND取整/四舍五入LD
TRUNC截尾取整LD
CELL浮点数向上取整LD
FLOOR浮点数向下取整LD

3.7数据传送

指令助记符功能说明编程语言
MOV赋值传送LD
EMOV二进制浮点传送LD
SMOV移位传送LD
BMOV数据成批传送LD
FMOV数据一对多传送LD
CML数据取反传送LD
CMP数据比较LD
ECMP浮点比较指令LD
ZCP区域比较LD
EZCP浮点区域比较指令LD

SMOV(移位传送)

D0 1234 从第四位开始连续二位 12-》赋值给D10 第三位与第二位

在bin模式下 将D0的高8位赋值给D10的的5-13位

BMOV(数据成批传送)

FMOV(数据一对多传送)

3.8定时器

定时器分类:

脉冲定时器(TPR)、接通延时定时器(TONR)、关断延时定时器(TOFR)和时间累加定时
器。

脉冲定时器 (TPR)


 

工作原理:

IN 0->1,定时器启动计时(不能重复驱动),Q状态位置1
当ET=PT即到达设定时间,Q状态位置0.如果IN=0,则ET值为0。IN=1,ET值保持。

如果R使能为1,当前值ET清零状态位Q置0

接通延时定时器 (TONR)

当IN状态位置1,定时器开始计时,如果ET=PT,状态位Q置1

如果IN状态位置0,当前值ET清零状态位Q置0

如果R使能有效,当前值ET清零状态位Q置0

关断延时定时器 (TOFR)

当IN使能为1,Q状态位置1,当前值清ET理

当IN使能1->0,定时器从零开始启动计时,如果当前值ET=PT,状态位置0

时间累加定时器 (TACR)

类似与TONR工作原理不再赘述

4.编程基础指令(ST)

使用MCPY指令,可以在相同类型的数组、结构体之间进行赋值。

指令类别指令名称功能说明支持语言
数组指令AryMax / AryMin数组变量的最大值 / 最小值检索LiteST
ArySearch在一维数组中检索指定值LiteST
SizeOfAry获取数组元素数量LiteST
AryMove数组传送LiteST
AryExchange数组数据交换LiteST
CLEAR初始化变量LiteST
AryAddV / ArySubV对数组的每个元素进行加法 / 减法运算LiteST
ArySHL / ArySHR将数组整体左移 / 右移 N 个元素LiteST
AryAnd数组逻辑与运算LiteST
AryOr数组逻辑或运算LiteST
AryXor数组逻辑异或运算LiteST
AryXorN数组逻辑同或运算LiteST
AryMean计算数组元素的平均值LiteST
ArySD计算数组元素的标准差LiteST
指令名称功能说明支持编程语言
LEN检出字符串的长度LD、LiteST
INSETR字符串插入LiteST
RIGHT从字符串右侧开始取出LD、LiteST
LEFT从字符串左侧开始取出LD、LiteST
指令名称功能说明支持编程语言
ClearString清除字符串LiteST
CONCAT将输入两字符串连接并输出LiteST
DELETE将输入字符串中的指定位置指定长度字符串删除,输出处理后字符串LiteST
FIND检索目标字符串在输入源字符串中的位置LiteST
REPLACE字符串替换LiteST

5.子程序

新建通用子程序

通用子程序的调用方式如下图所示
有条件调用,前面的能流为1时调用,否则不调用。
子程序必须以SRET语句结束;
可以重复调用,可以嵌套但是不能超过6层(注意不能递归)
定时器与计数器的使用与SMART_200一致

6.中断

PLC程序开始运行时,默认为中断禁止状态;执行了EI语句后,中断功能允许;当中断为允许状态,执行了DI 语句后,即进入中断禁止状态。在程序中如果没有插入中断禁止的区间时,可以不使用DI指令。
中断类型

外部中断:X0/X1/X2/X3发生变化时进入中断子程序

定时中断:根据设定时长定时进入中断子程序

比较中断:满足比较条件进入中断子程序
调用HC_Compare、HC_StepCompare、HC_ArrayCompare指令,将参数
InterruptMap与比较中断编号关联,即InterruptMap参数设置为比较中断编号。

7.通信

TCP_Socket

  1.作为服务器

        服务器必须等待客户端的连接请求,需要提供IP与端口号,当本机作为服务器时,使用TCP_Listen指令实现监听客户端连接请求的功能。

当执行之后,传递port失效,不能写入到Socket中,并且更改Socket也无效,记得一定是先确定好参数才执行监听。

Socket格式 

        指定监听的本机端口:不可以使用系统内部占用端口号(23、12939、12940)或Modbus-TCP服务器端口号(502)

处于监听状态的服务器当接收到客户端的连接请求后,需要通过TCP_Accept指令来建立与客
户端间的通信。

在成功建立通信后,通过多条TCP Accept指令可以实现同一本地端口与多个客户端建立通信连接??(未成功测试)

可以通过多条Listen+Accept实现多个TCP连接

注意Socket的不同

2.作为客户端

IPAddress:D500

当本机做为客户端,要与服务器进行通讯时,通过TCPConnect指令去连接服务器指定的端口
客户端通过TCP_Connect指令向服务器发出连接请求后,最多等待127秒,若服务器没有响应
则连接失败。 

3.断开连接

在完成通信后,可以使用TCP Close指令来关闭连接、停止监听或终止正连接的套接字

4.发送接收

 

关于发送接收类型支持 BUFFER数组支持字节/整数

整数数组的接收方式

MODBUS_TCP

MODBUS_TCP协议介绍

运行在 TCP/IP 网络上,将 Modbus 协议封装在 TCP 数据包中,使用端口 502。

主从模式: 通信由主站(Master,如 SCADA 系统、HMI)发起,从站(Slave,如 PLC、传感器、仪表)响应。

寻址空间: Modbus 使用不同的“数据模型”来访问设备内的不同类型数据。

线圈(Coils):可读可写数据,通常表示开关量输出(DO)。地址范围:0区。

离散输入(Discrete Inputs):只读数据,通常表示开关量输入(DI)。地址范围:1区

输入寄存器(Input Registers):只读(16位)数据,通常表示模拟量输入(AI)。地址范围:3区

保持寄存器(Holding Registers)可读可写(16位)数据,通常表示模拟量输出(AO)或设备配置参数。地址范围:4区。

Modbus TCP报文

Modbus TCP 的报文是在标准 Modbus PDU 的基础上,添加了一个特定的 MBAP 报文头

MBAP 报文头+Modbus PDU组成了Modbus TCP 的报文

MBAP 报文头(7字节)

事务元标识符(2个字节)+协议标识符(2个字节)+长度(2个字节)+单元标识符(1个字节)

Modbus PDU(协议数据单元):

功能码(1字节)+数据(可变长度)

实例1:读取保持寄存器(功能码 0x03)

主站发送:000E 0000 0006 01 03 0000 0002

000E:事务元标识符主站生成

0000:Modbus_TCP固定为0000

0006:后面还有6个字节

01: 站号为01

03:功能码

0000:起始地址

0002:读取个数

从站回应:000E 0000 0007 01 03 04 0003 0000

04:4个字节
0003:读取内容1

0000:读取内容2

实例2:写多个保持寄存器(功能码 0x10)

主:0002 0000 0009 01 10 00C8 0002 04 ABCD EF01

00C8:地址

0002:写入2个字

04:4个字节

ABCD:写入内容1

EF01:写入内容2

从:0002 0000 0006 01 10 00C8 0002

作为TCP主站

主站(客户端)主动发起连接
从站(服务器)开放端口等待连接(需要向客户端提供IP地址与端口号502)
Modbus TCP主站即Modbus TCP客户端,Modbus TCP主站最多支持同时与31个Modbus TCP从站 (Modbus TCP服务器)进行通信。

MB_Client—Modbus TCP协议发送接收

数据缓冲区,要求缓冲区大小设置大于125个字元件/250个字节

STConncetOPT配置

作为TCP从站

只需要提供IP地址与端口号502

汇川EASY MODBUS地址映射

汇川EASY支持的功能码

读取D0 D1

读取X0-X7

串口通信

通信资源

通信协议

RTU 帧格式

组成部分长度说明示例(十六进制)
起始间隔≥ 3.5字符时间帧与帧之间的静默区,由物理层实现-
从站地址1 Byte目标设备的地址(0-247)01
功能码1 Byte指示要执行的操作(如03读,06写)03
数据域N Bytes请求或响应的具体数据00 00 00 01
CRC校验2 Bytes循环冗余校验码(低位在前84 0A
结束间隔≥ 3.5字符时间帧结束的标志,由物理层实现-

请求从站地址1读取保持寄存器40001和40002(起始地址0x0000,数量0x0002)。
完整的RTU请求帧为:01 03 00 00 00 02 C4 0B

  • 01: 从站地址

  • 03: 功能码(读保持寄存器)

  • 00 00: 起始地址高/低字节

  • 00 02: 寄存器数量高/低字节

  • C4 0BCRC校验码(计算自 01 03 00 00 00 02

ASCII 帧格式

组成部分长度说明示例(ASCII字符)
起始符1字符固定为冒号 ::
从站地址2字符目标设备地址的十六进制ASCII表示"01"
功能码2字符功能码的十六进制ASCII表示"03"
数据域N*2字符数据的十六进制ASCII表示"00000002"
LRC校验2字符纵向冗余校验码的十六进制ASCII表示"F4"
结束符2字符固定为回车换行 CR LFCR LF

与RTU示例相同的请求(从站1,读寄存器40001和40002)。
完整的ASCII请求帧为::010300000002F4CR LF

  • :: 起始符

  • 01: 从站地址(ASCII字符 '0' '1')

  • 03: 功能码(ASCII字符 '0' '3')

  • 00000002: 数据(ASCII字符 '0''0''0''0''0''0''0''2')

  • F4: LRC校验码(计算自 01+03+00+00+00+02 的二进制和,取反加一后转换为ASCII)

  • CR LF: 结束符

MODBUS_RTU

RTU主站

配置串口协议

该指令用于实现串口的modbus协议通讯

S1 — 端口号(端口号和串口对应,设定实际选择通信的串口号)默认为0

S6 — 数据缓冲区,要求缓冲区大小设置大于125个字元件/250个字节
                

可以修改系统变量中的串口参数(有需要可以查阅手册)
自由口协议

虽然不知道为什么但是端口设置位0,其他不能用

EtherNet/IP

协议介绍

打开连接的一端为EtherNet/IP主站,被打开的一端为EtherNet/IP从站

主站配置
添加EtherNet-IP从站

如果设备不存在,右键单击工具箱中的“EtherNet/IP Devices”节点,在弹出的菜单项中单击“导入

eds文件

CAN

EtherCAT

其他支持的通信

OPC UA

OPC UA(Open Platform Communications Unified Architecture)是一种工业通信协议,旨在实现不同制造商和平 台的设备 、 系统以及应用程序之间的安全 、 可靠的数据交换 。
特点:
跨平台:OPC UA是跨平台的协议
多种通信模式:支持客户端/服务器(C/S)模式和发布/订阅(Pub/Sub)模式

PROFINET
PROFINET 的设计目标是用标准的工业以太网,满足从工厂自动化到过程自动化所有领域的通信需求。它不仅仅是一种协议,更是一个完整的通信框架。
 

  • 基于工业以太网:它使用标准的IEEE 802.3以太网技术,但针对工业环境进行了强化(如坚固的连接器、实时性、确定性)。

  • 开放性:它是一个国际标准(IEC 61158 & 61784),不同厂商的设备可以实现互操作性。

  • 实时性:这是PROFINET与普通办公以太网最根本的区别。它通过不同的通信通道来满足不同等级的实时需求。

  • 拓扑灵活性:支持线型、星型、环型等多种网络拓扑,并支持集成的网络诊断功能。

MC

MC协议是三菱电机为其自动化产品(如PLC、运动控制器、机器人控制器等)设计的一套专有通信协议。它的主要目的是让外部设备(如上位机、HMI、SCADA系统、其他品牌的PLC等)能够与三菱的控制器进行数据交换。

MC协议的不同形式(框架与实现)

1. 串行通信框架(早期/基础)

  • 基于RS-232或RS-485串行接口。

  • 协议格式相对简单,但速度较慢。

  • 例如,通过COM口直接连接FX系列的PLC。

2. 以太网框架(主流/常用)

  • 基于TCP/IP或UDP/IP,运行在以太网上,速度更快,是现代应用的主流。

  • 它本身又包含几种不同的通信方式:

    • MC二进制格式:这是最常用、最标准的格式。使用二进制的指令和响应,代码简洁,处理效率高。

    • MC ASCII格式:指令和响应都以ASCII字符(文本)形式表示。虽然可读性好(便于调试),但数据量是二进制的两倍,效率较低。

    • SLMP格式:这是三菱推出的统一协议框架,旨在为串行和以太网提供一致的通信体验。现在很多时候提到以太网MC协议,实际上就是指基于SLMP框架的通信。

3. 总线框架

  • 基于MELSECNET/H或CC-Link等工业总线网络。

  • 用于三菱产品内部的高速网络互联,通常不用于与上位机的直接通信。

 FINS/TCP/UDP
FINS
 是 Factory Interface Network Service 的缩写,它是欧姆龙为其自动化产品(如PLC、温度控制器、网络从站等)设计的一套专有通信协议

  • 网络透明性:程序员无需关心底层网络硬件的细节,使用相同的FINS指令即可跨网络通信。

  • 强大的功能:支持读写I/O存储器、操作模式控制、文件操作、时钟操作等多种功能。

  • 基于命令/响应:采用典型的“主站请求,从站响应”的工作模式。

8.运动控制

9.具体案例/方法

1.队列

入队

出队

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐