C#与信捷PLC通讯.docx
《C#与信捷PLC通讯.docx》由会员分享,可在线阅读,更多相关《C#与信捷PLC通讯.docx(15页珍藏版)》请在优知文库上搜索。
1、实现C#与信捷P1.C通讯信捷P1.C在与PC通讯的时候,作为下位机,则上机必须按照MODBUSRTU的数据格式与其进行数据交换;下面为大家讲解相关使用:1、 什么是MOOBUSRT啾设?.MODBUSRTU的数据格式:请阅读Modbus协议中文版.pdf,通过这个介绍你会对MODBUS协议有所了解,其中还详细介绍了modbus通讯的另种模式一一MODBUSASCII模式,关于两者之间的区别,在此不再重复阐述,Modbus协议中文版.pdf上都有介绍,使用中清区分RTU和ASCII模式,不能笼统的认为使用的协议是MoDBUS协议。2、 MOOBUSRTIJ的数据格式:地址域功能码数据CRC或(
2、1.RC)I例如:0106000100179804O1.060001(X)179804从机地址功能码数据地址数据CRC校验这一串数据的意思是:把数据OXoOI7(十进制23)写入1号从机地址OXOOOI数据地址。2.1功能码I功能码描述功能码描述:0x01读线圈状态0x05写单个线圈0x02读离散输入状态0x06写单个保持寄存器0x03读保持寄存器Ox1.O写多个保持寄存器0x04读输入寄存等OxOF写多个线圈2.2读寄存器:(0x03功能码)读取格式:地址I功能码I寄存器起始地址I寄存器数量CRCI6校殴Adrr0x03高8位低8位高8位低8位低8位高8位返回格式:地址I功能码I字节数I寄存
3、器数据CRCI6校AdIT0x03NMX位低8位低8位高8位23写寄存器:(0x10功能码):写入格式:.地址I功能码I寄存叁起始地址I寄存叁数=I寄存叁数据CRCI6枚险AdrOxIO高8位低8位高8位低8位高8位低8位低8位高8位返回格式:地址I功能码I寄存器起始地址I寄存卷9ACRCI6校验AdrrOxIO高8位低8位裔8位低8位低8位高8位2.4示例发送:O1.0300010001D5CA从机地址功能号数据地址读取数据个数CRC校验那么P1.C接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则返回信息给主机:返回内容:O1.03020017F84A从机地址功能号
4、数据字节个数数据CRC校验MoDBUS主机就完成了一次对从机P1.C数据的读操作,实现了通讯,3、核心代码usingSystem;usingSystcm.IO.Ports;usingSyStCm.Threading:namespaceSy1.ow1.y.Base(pub1.icc1.assP1.CHe1.perJpub1.icScria1.PortScrPortget;set:pub1.icintIntTimeOutget;set:)pub1.icstringStrPErrorget;set;)pub1.icP1.CHc1.pcr(Scria1.PortmscrPort.iumTinwOut)
5、this.ScrPort=mscrPort;IhisJntTiineOut=mime0ut;)“CRC校验pub1.icbyte(JCRC1.6(bytebytData)(bytc11numArray=newbytcbytDgth+2;intmaxVa1.ue=(int)ushor.MaxVaIue;intnumI=40961;for(intindex1=0:index1,tData.1.eneth:+index1)(maxVa1.ue=(int)bytDataindcx1.;for(intindex2=0:index28:+index2)(intnum2=maxVa1.ue&1;maxVa1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# PLC 通讯
