信捷PLC通讯.docx
《信捷PLC通讯.docx》由会员分享,可在线阅读,更多相关《信捷PLC通讯.docx(8页珍藏版)》请在冰豆网上搜索。
信捷PLC通讯
信捷PLC在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照MODBUSRTU的数据格式与其进行数据交换;如果信捷PLC作为上位机,当下位机也支持MODBUSRTU协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持MODBUSRTU协议,则可使用自由格式通讯,下面为大家讲解相关使用:
1.什么是MODBUSRTU协议?
请阅读《Modbus协议中文版。
pdf》,通过这个介绍你会对MODBUS协议有所了解,其中还详细介绍了modbus通讯的另一种模式--MODBUSASCII模式,关于两者之间的区别,在此不再重复阐述,《ModbuS协议中文版。
pdf》上都有介绍,使用中请区分RTU和ASCII模式,不能笼统的认为使用的协议时
MODBUS协议
2。
MoDBUSRTU的数据格式:
地址域
功能码
数据
CRC{或LRC)
举例与1号站通讯:
主机发送的数据(通过串口调试工具监控,在调试串口通讯的时候,建议使用串口调试工具,这样可以直接看发送接收的数据内容,信捷推荐T-COM点击下载):
发送数据;I
RTS控制
EnaUm(D)*
H⅞ι⅛dSh⅞k⅞
广DisableQ)(P
TrAV
周期发送IlOOO毫秒
01OF0001000301017357
01OF0001UO0301017357
01OF0001do0301017357
COMl19200DθSiE^en
这是监控到的数据,由于PLC没有连接下位机,所以系统自动重拨,共三次如果通讯任然失败,则视本次通讯完成。
下面对数据进行讲解:
0001(下位机目
01(数据内容M0为
01(下位机站号)OF(modbus多个线圈写功能码)标地址)0003(线圈个数)01(字节数)
01(下位机站号)OF(modbus多个线圈写功能码)0001(下位机目
标地址)
0009(线圈个数)02(字节数)00(数据内容低位)
01(数据内容高位)
25(CRC校验高位)6D(CRC校验低位)
I01OFDO01Oa0301Dl7357
OlcFffiJOlOooga2OOQl256D
写三个线圈写九个线圈
比较两组数据不难发现:
线圈个数导致字节数、数据内容不同,一个字节是8
位,写九个线圈的时候占用两个字节,同时写的数据内容也超过8位因此要占用两个寄存器来存放数据内容
F面是常用modbus功能码及其功能,
读输入离散⅛f
02
读线圈
01
写单个线圈
05
写多个线圈
OF
读输入寄存器
04
读多个寄存器
03
写单个寄存器
06
写多个寄存器
IO
读/写多个寄存
器
17
屏蔽写寄存器
16
读文件记录
14
写文件记录
15
读设备识别码
2B
3•参数设置说明:
在调试通讯程序之前,必须对硬件连接和通讯数进行检查,在确保
这些都完善
的情况下再继续工作
信捷PLC支持的总线有:
RS232RS485,以下结合PLC操作面板给大家说下:
14点机型:
Portl支持RS—-232请勿修改此端口参数,修改将导致PLC与电脑连接不上
此处AB属于port2在使用时候需将此端口参数设置成和通讯设备相同
左边P0RT1支持RS232
参数修改会导致脱机
IRTl
金@)趣㊉題%(©鉅弦鉅®)(©
右边Port2支持RS232和RS485但注意不能同时
使用485接口在输出端A和B端子
FeRT2
-—I
•*
参数设置:
打开XCPPrO编程软件,连接PLC,点击“PLC设置”——“PLC串口设置"出现以下窗
口:
.Ξ要使配査生廿,需要斷电重启FLC
自由格式通讯:
所谓自由格式,就是当下位机通讯协议与PLC协议不匹配时候,PLC
内部自定义数据格式来发送数据,这样可以和很多下位机进行通讯,
下面介绍下信捷PLC自由格式通讯,相关使用方法:
1.硬件连接RS232/RS485
2.参数设置:
自由通讯参数设置方法与上面讲的一样,只需将通
讯模式改成自由格式,其余参数方法相同
注要便配置生效,需要斷电重启FLC
上图为自由格式通讯多出来的部分,当数据格式确定,如果每帧数据都有起始符和终止符的话,则可以直接在这里设置,程序里就无需再
做处理,下面举例说明
上图是程序和参数设置,下图是给Do设置成十进制16的时候T-CoM
监控到的数据:
同期反达IIUUU壬秒
KTS®IM
Ejx⅛⅛1⅞(0)*HdiShake
Disable(1]IrAV
I厂显”宇符7显丁皿It码
Ili√校验码厂交换
校验玛
If*CBf-IlIOdbIIS。
FF*F
COllIlθ2Q0DeSiEra∣
可以看出,在软件中设置起始符和终止符是对应ASeIl码的十进制数设置的65监控到的是十六进制的41也就是ASCII码
“A"的值.ASCii码表点此链接
关于功能的大致介绍到此为止,至于PLC编程指令的格式,请参考
《信捷XC系列用户使用手册[指令篇]》第七章;大家可以下载一个T-COM然后结合PLC一起,编写程序,边监控,看看数据格式是什么样的,MODBUSRTU的协议对于格式有什么问题的可以参考
《ModbuS协议中文版。
pdf》,至于自由格式就没什么特殊要说的,一切以监控到的数据为准,遇到通讯数据设置好了,一切都正常了,就是通讯不上的时候,强烈建议使用串口调试工具监控,最好是先使用
串口调试工具直接与下位机通讯,待通讯成功之后,确定了数据格式,然后再编写PLC的程序,这样效率更高。