许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  TC2控制器自带串口做RS485通讯怎么接线?配置参数和调试要点

TC2控制器自带串口做RS485通讯怎么接线?配置参数和调试要点

阅读数 7
点赞 0
article_banner


一、硬件连接

RS485时,TX+和RX+接一起,代表485的A+,TX-和RX-接一起,代表B-。即2,3引脚短接,7,8引脚短接。

二、创建TwinCAT XAE Project项目

连接CPU,并扫描出EL6022硬件;创建Standard PLC Porject;

三、编程

在POUs同级菜单“References”上右击,选择“Add library” 项,选择“Tc2_ModbusRTU”库;

变量声明:

代码块


// 变量声明区的内容
PROGRAM MAIN
VAR
	ton0:ton;
	ton_start:BOOL := TRUE;
	RS485Run :BOOL;
	ReadRegEdge:R_TRIG;
	WriteRegEdge:R_TRIG;
	ReadCoilEdge:R_TRIG;
	WriteCoilEdge:R_TRIG;
	//ReadRegDo:BOOL;
	//WriteRegDo:BOOL;
	//ReadCoilDo:BOOL;
	//WriteCoilDo:BOOL;
	ReadWriteFun:ModbusRtuMaster_KL6x22B;
	DataRead : ARRAY[1..10] OF WORD;
	DataWrite:ARRAY[1..10] OF WORD:=[11,12,13,14,15,16,17,18,19,20];
	CoilRead:ARRAY[1..2]OF BYTE;
	CoilWrite:ARRAY[1..2] OF BYTE:=[244,156];

END_VAR


      复制成功
     
     
     
     

主程序:

代码块

PlainText


ton0(IN:= TRUE, PT:= T#0.1S, Q=> , ET=> );
IF ton0.Q THEN
	RS485Run := NOT RS485Run;
	ton0(IN:= FALSE, PT:= T#0.1S, Q=> , ET=> );// 关闭定时器
END_IF

//ReadRegEdge(CLK:= ReadRegDo, Q=> );
ReadRegEdge(CLK:= RS485Run, Q=> );
// 功能码:3
ReadWriteFun.ReadRegs(
	UnitID:= 9, //从站地址
	Quantity:= 4, //读取4个字,以word计
	MBAddr:= 1, //地址偏移量
	cbLength:= SIZEOF(DataRead), //存放读取值的变量的大小,以byte计,该值必须大于等于Quantity值的一半
	pMemoryAddr:= ADR(DataRead),   
	Execute:= ReadRegEdge.Q,
	Timeout:= T#100MS, 
	BUSY=> , 
	Error=> , 
	ErrorId=> , 
	cbRead=> );
	

(*
WriteRegEdge(CLK:= ton0.q, Q=> );
ReadWriteFun.WriteRegs(
	UnitID:= 9, 
	Quantity:= SIZEOF(DataWrite)/2, 
	MBAddr:= 1, 
	cbLength:= SIZEOF(DataWrite), 
	pMemoryAddr:= ADR(DataWrite), 
	Execute:= WriteRegEdge.Q,
	Timeout:= T#100MS, 
	BUSY=> , 
	Error=> , 
	ErrorId=> , 
	cbRead=> );
*)	
(*
//ReadCoilEdge(CLK:= ReadCoilDo, Q=> );
ReadCoilEdge(CLK:= ton0.Q, Q=> );
// 功能码:1
ReadWriteFun.ReadCoils(
	UnitID:= 9,//从站地址 
	Quantity:= 16, //要写入16个bit,以bit计
	MBAddr:= 0, //地址偏移量
	cbLength:= 2, //存放待写入变量的大小,以byte计,该值必须大于或等于Quantity的值(相同单位时)
	pMemoryAddr:= ADR(CoilRead), 
	Execute:= ReadCoilEdge.Q, 
	Timeout:= T#100MS, 
	BUSY=> , 
	Error=> , 
	ErrorId=> , 
	cbRead=> );
	*)
	(*
WriteCoilEdge(CLK:= WriteCoilDo, Q=> );
// 功能码:13
ReadWriteFun.WriteMultipleCoils(
	UnitID:= 9, 
	Quantity:= 16, 
	MBAddr:= 0, 
	cbLength:= 16, 
	pMemoryAddr:= ADR(CoilWrite), 
	Execute:= WriteCoilEdge.Q, 
	Timeout:= T#100MS, 
	BUSY=> , 
	Error=> , 
	ErrorId=> , 
	cbRead=> );
*)

      复制成功
     
     
     
     

激活配置“Activate Configuration”。


四、硬件通讯参数设置

在扫描出的硬件中选中EL6022模块,在右侧“COE-ONLINE”选项卡里面的8000折叠项中设置波特率,数据格式和通讯方式。

8000:11 用于设置波特率,选择9600;

8000:15 设置数据格式,选择8N1;

8000:06和8000:07结合起来用于设置通讯方式;;

06 07 通讯方式

true false RS485

false true RS422


三、关联变量

在扫描出的EL6022硬件中,同时选择“Status”和“Data In 0~21”,右击选择“Change Mulite Link”,在弹框中选择对应的变量;输出同理;


激活配置“Activate Configuration”。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空