TwinCAT3串口通讯EL6021模块使用-和串口调试助手自由协议通讯

article/2025/10/3 11:21:50

目录

一、简介

二、环境介绍

三、接线连接

 四、创建TwinCAT3程序工程

1、IO扫描和参数设置

2、字符串型数据发送和接收PLC程序创建

 (1)库文件添加

 (2)创建任务和程序

 (3)变量关联

 (4)重新激活工程、运行

3、运行和测试

(1)运行PLC程序

 (2)串口调试助手和PLC程序测试

五、Byte型数据发送和接收

0、简介

1、变量创建

2、用户程序

3、测试

六、测试问题

七、程序工程下载链接

1、字符串型数据发送和接收程序工程

2、Byte型数据发送和接收程序工程


一、简介

        EL6021是倍福推出的RS422/485串口通信模块,一般用作Modbus RTU通信的主站也可以做串口自由协议通讯,EL6021是单口RS422/485模块,EL6022是双口(DB9)RS422/485模块,且两个口可独立设置,互不影响。

         EL6021支持2400…115200 kbuds的标准波特率,默认波特率为9600,8N1配置。 RS422支持全双工的通信模式,其发送数据线采用差分线对TxD+和TxD-,接收数据线也采用差分线对RxD+和RxD-,这样的设计方式增强了通信的抗干扰能力。 RS485支持半双工的通信模式,不支持全双工模式,只使用一对差分线进行数据传输,一般称为A和B或者TxD和RxD,这样的设计导致设备在发送数据的时候是无法接收数据的,因为总线被占用且正在进行发送操作。

         EL6021出厂默认的工作模式是RS422。

二、环境介绍

       1、PLC端:CX5130-0125、EL6021,Twincat3

        2、PC端:USB转232、232/485转换器,win10系统(USB转232驱动安装好)、串口调试助手

        3、EL6021对应的软件授权需额外购买,测试使用7天试用

                   Modebus-RTU:TF6255

                   Serial-Communication:TF6340

 

三、接线连接

   485模式 接线说明:

        1和2短接然后跟第三方设备485正连接

        5和6短接然后跟第三方设备485负连接

  422模式 接线说明:

        四根线分开依次连接。

      首先确保接线正确,将EL6021上面的1、2短接,5、6短接,然后将EL6021的1和5管脚连接到电脑USB转485/422口的RXD+和RXD-上面,USB转485/422的驱动必须装好,这种方式采用485的接线方式,EL6021默认的COEONLINE设置就是485的方式。

 EL6021和485的地GND,可以接也可以不接。建议都接0V。

 四、创建TwinCAT3程序工程

1、IO扫描和参数设置

      (1)配置模式下,在IO-Device进行硬件扫描。找到EL6021硬件模块。

 (2)CeE-OnLine参数设置

 (3)设置自启动初始化时候参数值

2、字符串型数据发送和接收PLC程序创建

 (1)库文件添加

    在References中添加Tc2_SerialCom库文件

 (2)创建任务和程序

添加全局变量

VAR_GLOBAL(**xBuffer 的作用是,在 PLC 要发送的数据和串行通讯的硬件 Process Data 之间设置一个缓存区。*比如 KL6outData22B 类型的接口,每个 PLC 周期只能发送 22 字节。假如程序需要发送的数据为 100 个,*那么实际上 PLC 程序是把这些数据放到 TxBuffer 中,再由硬件分几个 PLC 周期发送出去*)TxBuffer_PC:					ComBuffer;		RxBuffer_PC:					ComBuffer;COMin				AT%I*		:KL6inData22B;		COMout				AT%Q*		:KL6outData22B;COMportControl					:SerialLineControl;
END_VAR

在Main程序中添加代码

(**功能块的作用,把 TxBuffer 缓存区的数据经过 Process Data 的 ComOut 发送出去,*而把 ComIn 中的数据接收到 RxBuffer。引用这个功能块的程序执行周期越短,*数据交换的效率就越高,所以这段程序应该放在快速任务中作为 Backgroud 代码无条件执行。
*)
COMportControl(Mode:= SERIALLINEMODE_KL6_22B_STANDARD, pComIn:= ADR(COMin), pComOut:= ADR(COMout), SizeComIn:= SIZEOF(COMin), Error=> , ErrorID=> , TxBuffer:= TxBuffer_PC, RxBuffer:= RxBuffer_PC );

在SerialSend程序中添加局部变量

PROGRAM SerialSend
VARsend1:							SendString;receive1:						ReceiveString;Timer1:							TON;_sendString:					STRING:='4567';_receive1string:				STRING;_recvLast:						STRING;				//保存上一个周期接收的字符END_VAR

在SerialSend程序中添加程序

//3000ms发送一次
Timer1(IN:= NOT timer1.q, PT:=T#3000MS , Q=> , ET=> );
IF timer1.Q THENSEND1(SendString:=_sendString ,TXbuffer:=TxBuffer_PC ,Busy=> ,Error=> );
END_IF//接收
Receive1(Timeout:= t#100ms,ReceivedString:=_receive1string ,RXbuffer:=RxBuffer_PC , );//保存上一个周期接收的字符
IF Receive1.Busy THEN_recvLast:=_receive1string;
END_IF

然后,重新编译、生成工程,没有错误、没有警告。

 (3)变量关联

EL6021中输入输出的21个IO变量分别和PLC程序中的变量关联起来

 (4)重新激活工程、运行

3、运行和测试

(1)运行PLC程序

①程序设置3000ms发送一次

②设置发送的字符串

 (2)串口调试助手和PLC程序测试

串口参数要和PLC的EL6021配置的串口参数一致。

①打开串口

②串口调试助手接收PLC发送的数据。

③串口调试助手发送数据,在PLC中观测。

五、Byte型数据发送和接收

0、简介

Byte型数据的发送和接收和字符串型数据发送和接收方式一样,都属于串口自由协议通讯方式。因此工程中硬件组态配置是一样的、Main程序中的SerialLineControl功能块使用也一样。本测试程序工程直接复制前面的工程,Task中删除SerialSendString、添加新创建的SerialSendByte程序,如下图所示:

1、变量创建

PROGRAM SerialSendByte
VARsend1:							SendData;receive1:						ReceiveData;Timer1:							TON;nSendByteLength: 				UDINT:= 5;	arr_SendData:					ARRAY[1..20]			OF		BYTE;(*READ*)arr_RcvData:					ARRAY[1..200]			OF		BYTE;END_VAR

2、用户程序


arr_SendData[1]	:=16#A1;
arr_SendData[2]	:=16#A2;
arr_SendData[3]	:=16#A3;
arr_SendData[4]	:=16#B1;
arr_SendData[5]	:=16#B2;
arr_SendData[6]	:=16#B3;
arr_SendData[7]	:=16#C1;//3000ms发送一次
Timer1(IN:= NOT timer1.q, PT:=T#3000MS , Q=> , ET=> );
IF timer1.Q THENsend1(pSendData:= ADR(arr_SendData), Length:= nSendByteLength, Busy=> , Error=> , TXbuffer:= TxBuffer_PC);
END_IF//		
receive1(pPrefix:= , LenPrefix:= , pSuffix:= , LenSuffix:= , pReceiveData:= ADR(arr_RcvData), SizeReceiveData:= 200, Timeout:= T#300MS, Reset:= , DataReceived=> , busy=> , Error=> , RxTimeout=> , LenReceiveData=> , RXbuffer:= RxBuffer_PC);	

3、测试

六、测试问题

1、RS485通讯,发送的数据又返回来了

解决:由于 BECKHOFF 提供 RS485 和 RS422 通讯是同一个硬件,所以当用作 RS485 通讯 时, 必须发送和接收短接在一起, 并设置参数为半双工“Half Duplex”,

如果是 EL602x, 参 数 8000: 06 置 True 即为半双工。

2、发送和接收数据都没有

解决:

①检查PLC程序配置是否正确

②PLC程序是否执行

③IO中EL6021的变量是否关联起来了,有X表示关联成功、没有X需要再次关联然后重新激活工程。

七、程序工程下载链接

1、字符串型数据发送和接收程序工程

https://download.csdn.net/download/panjinliang066333/87408302

2、Byte型数据发送和接收程序工程

https://download.csdn.net/download/panjinliang066333/87410022


http://chatgpt.dhexx.cn/article/uYasAGrc.shtml

相关文章

TwinCAT3之Ads通讯——1、控制器和控制器间通讯

目录 1 简介 2 硬件连接 3、工程和配置 3.1 Ads Mast主工程 3.2 创建从机工程 4 Ads主机中读写操作测试 4.1 Mast读操作 4.2 Mast写操作 1 简介 ADS通讯是倍福公司定义的一种专门协议,用于TwinCATsheb 之间非周期性通讯。既可以用控制器内部通讯、控制器跟控…

【Twincat3】devices的scan不可选中,twincat服务未开启

1.问题现象: 2.问题原因: 从站未开启,即这个图标是灰色状态 3.解决方法: 1)winR,输入msconfig命令: 2)勾选twincat服务,点击应用确定即可 3)点击后,会有…

TwinCAT3 学习笔记一之界面介绍

TwinCAT3图标介绍 安装好TwinCAT3后可以在任务栏右下角看见这个图标 About TwinCAT 右击第一行的About TwinCAT 可以看见TwinCAT3版本 也可以找到本机的AMS Net Id Tool工具栏 Event Viewer 可以记录软件的运行和错误的历史。 TwinCAT Project Compare 可以进行项目工程…

Twincat3 的基础操作

一、倍福Twincat3的安装操作 安装地址:www.beckhoff.com.cn 安装步骤: 安装后点击下一步即可安装成功。 注意事项: 二、 Twincat3目录介绍 三层架构 PLC轴、NC轴和物理轴 PLC程序为PLC轴 NC配置界面定义的AXIS叫NC轴 IO配置扫描的硬件叫物理轴 PLC程序对电机进行控制需经过两…

TwinCAT3导入TwinCAT2项目pro文件的方法

TwinCAT3导入TwinCAT2项目pro文件的方法 1、在倍福虚拟学院的网站上,经常可以下载到基于TwinCAT2编写的例程,要在TwinCAT3的编程环境中打开这些例程,可以遵循以下的方法: 背景知识介绍: 例如下载了EL6021的自由串口例…

【EtherCAT实践篇】四、TwinCAT 3实验1-基本操作

这里EtherCAT主站采用PC 的TwinCAT 3,【EtherCAT实践篇】一、TwinCAT3安装已经介绍了TwinCAT 3的安装方法。在利用TwinCAT 3进行实验前, 先学习下TwinCAT 3的基本操作。 1、TwinCAT3新建工程 新建项目: 填好新建工程路径和名称:…

TwinCAT3 Error starting TwinCAT system! 报错问题

TwinCAT3 Error starting TwinCAT system! 报错问题 Win10系统下 TwinCAT3 首次使用运行项目时会出现如图报错: TwinCAT System (10000): Sending ams command >> lnit4\RTime: Start Interrupt: Ticker started >> AdsError: 4115 (0x1013, RTIME: s…

win10系统下TwinCAT3与VS2019之间的ADS通信

WIN10, TwinCAT3, VS2019, ADS 转博后第一次出差,来到了UnitedImaging,这次的任务是负责在ros系统和TwinCAT3之间的 ADS 通信。 作为本次第一篇博客,先跑通win10系统下TwinCAT3与VS2019之间的ads通信。 本文在PLC中设置一个BOOL量&#xff0c…

TwinCAT概述

1.什么是TwinCAT? TwinCAT是Beckhoff公司的运动控制软件,全称是"The Windows Control and Automation Technology",基于Windows操作系统。 2.TwinCAT的结构 TwinCAT包含三层结构:PLC轴、NC轴和物理轴。 PLC程序中定…

如何基于TwinCAT3实现伺服电机控制(一)

先说一下硬件,伺服电机采用定制的关节无框力矩电机,带力矩传感器,EtherCAT通讯,想用在康复机器人上做运动控制研究。 软件方面采用TwinCAT3,这个到倍福官网https://www.beckhoff.com.cn/zh-cn/上搜索下载即可&#xf…

TwinCAT3安装教程-EtherCAT学习

TwinCAT3安装教程-EtherCAT学习 情况简介 最近一些时间在研究TwinCAT,分别在笔记本和台式机上运行了TwinCAT3,在此将遇到的问题记录一下,希望能给大家一些帮助。 1、笔记本配置:windows 64位 Qualcomm Atheros AR8171/8175/PCI-E gIGABIT E…

TwinCAT 3 基础——编程基础

文章目录 1、注释2、数据类型3、基本数据类型变量声明方式4、数组5、实际输入输出变量6、常量7、结构体数据8、枚举变量9、条件选择10、循环语句 1、注释 注释是由 “(* ” 开始,由 “ *)”结束。可以放在行首,行尾,也…

TwinCAT3常见问题1

TwinCAT 3 为工程技术开辟了一条新的道路,并通过添加很多功能对实时内核进行扩展。工程环境完全集成在微软的Visual Studio框架中,除了系统配置、运动控制、I/O和IEC61131 PLC编程语言之外,还可以进行编程和调试。本文针对TwinCAT3VS2017使用…

TwinCAT3以太网TCP/IP自由协议通讯

目录 一、TwinCAT3以太网TCP/IP客户端创建 1、系统连接示意图 1、程序创建 (1)工程创建和授权添加 (2)库文件添加 (3)变量创建 (4)程序 2、测试 (1)网络调试助手创建服务端监听 (2&…

TwinCat3学习问题

1. 4115报错 运行①,重启电脑即可。 运行TwinCAT 3 出现 4132和4115 问题,如何解决? 2. TwinCat图标为棕色,切换到运行模式报错。 此电脑 - 右键【管理】 - 【服务和应用程序】 - 【服务】 - 启动【TC3 system service】 启动…

EtherCAT之TwinCAT3安装、使用

目录 一. 环境:Win10专业版(i7处理器,intel网卡)VS Community 2017TC3 二、开启虚拟化,关闭超频。 三、安装TC3.1 四、新建PLC项目 五、新建c项目 一. 环境:Win10专业版(i7处理器&#xff…

keil中获取系统时间

包含头文件:time.h 程序: 运行结果:

VB获取系统时间

所需函数: Now函数:返回系统当前日期和时间 Format函数:根据格式表达式格式化数据 要点: yyyy(year):代表年份 MM(month):代表月份 dd(day&…

UE4 获取系统时间方法

UMG界面搭建 由于虚幻到01分的时前面会把0省略掉所以这里做了个判断 效果展示

Android 获取系统时间

Android开发中经常需要我们获取系统时间,而获取系统时间大致可以用这两种方法解决 1)SimpleDateFormatDateSystem.currentTimeMillis() 其中currentTimeMillis是用来返回一个当前时间距离1970-01-01 00:00:00的毫秒数,之后用这个数值构造一…