《S7-200 Modbus RTU 通信.docx》由会员分享,可在线阅读,更多相关《S7-200 Modbus RTU 通信.docx(14页珍藏版)》请在优知文库上搜索。
1、O=尢校&1=奇较蛤e.Timeoutfflif!:主站等怙从站前卮时时同.以亳秒为单位.典皇的设置依为100o毫秒1秒).允许设IH的范阳为1-32767.A*.这个值必需设N足移人以保证从站仃时间响吨.f. Done完成位:制饴化完成,此位金门劝置1.可以MM更扃动MBUS_MSG读写操作见例程g. Error切蛤化错误代出(只行花Done位为1时有效)l0=无精识1=校5选择拿法2=波特率选择非法3=模式送抒I法2.辑用ModbusRTU主写TefltMBUS_MSG,3tij-MOdbUSCde.fg图3.iqlKtodbusRTU主站读写了程序各参数就义如下:a. EN使伍W一时刻只
2、能行个读巧功能(R3MBUS_MSG)使能*建议每个读写功能(印MBUS_MSG)都川卜个MBUS_MSG折令的Done完成位来淞活,以保证全部读写指令Wi环进行(见例程).b. First送、恳求位I姆个Sf的逾。8求必需运用破发C.Slave从MJft及:可选界的数用1-247d.Rw从站地Ih0=Ht.I=Ma.1 .开关鬓输出和保特寄存券支持谈和好功能tSRTUr一站折陈向用例程TSfl2反IHt活单个MBUS-MSGjTM格RTUE变址方式轮也访何小川倒程Av*.此指令再?程序的作者和抑行存对卜该软胃的功低性和柜容性不负任何衣任.运川该软件的应险完仝由用户自行担当.由于它是免费的.所
3、以不供应任何担保,婚送订正和热线支持,用户不必为此联系西门子技术支排与服务部门.1.5ModbusRTU主站常问问题命ModbusRTU主站京对CPU的IIft本是否有要求,为什么译例子程序N,会也到4ZHRTModbusRTUEM嫁对CPU的版本的确右要求,CPU的版本仍需为2.00或若2.01即打货号为6ES721230A122版本之前(包括1.22版本IFjS7-200CPU不支协,Modbus指令京府幼后,如何好过同一个通信靖口遂行CPU欧控?MOObUS指勺际运用的是CPU的自由口通倍功能,工作在自山口模式下的通讯I】不使运用MicwWIN的PPI羽桂通信监控.假S近俗口都已发被占M
4、,可以考虑: 加一个通信模块(如EM277,CP2431.EM241券)扩找出一个编程通信口 中止自由口根式.可以将CPU上的粳式开关从RUN拨到STOP:成行保持处于RUN状&用理库停止指令底的Modbus铁式(参见指令际应用)如用!解Modbus地址与功能码的区分?Modbus地址VMocbus的功能积是两个层次的微念.依据Ktodbus.H,ii.Modbus攻据的地址运用Oxxxx.1xxx,3xxx和4xxxx的形式.分别去示攻字收喻出、攻字此粕入、模拟求粕入等(掂地H.在运用S7-200的指令4时.Modbus数抠地址与S7-200的Ig和数氟存偌K堆址向右特定的时应关条。在些设符
5、表明它支持ModbusRTU通信协议,但也R体供应了读写数据的具体通信糊格大,Jt中包括如何指定ModbUS站的地It.须魄波写数热类N.长度容等.敏据懊有特定字节指出此指令读写的牧掂类举和地址.此字节的故据内存即所谓功能码”.加功悠1指定注取单个,多个敏字/输出点的值.支持Ktodbus物议的谀备或软件,运用时用户干花收置或行刎的向当是Ktodbus能抓地H.Modbus地母所访何的KlJK,是通过各种“功使”读写而米.功位码是Modbus抱址的底岳,慢如Modbus通信的一方供应的所谓MoObus协议只有功能码,则须要刷强/好此功健号。ModOus地址间的封庖关系.何坊向大于9999的保抻
6、*存蟾址?通常NOdbUS抄议的保持揖存舞堆址豆困占40001-49999之何.对于多数应用来说已线修/.ffl*VModbUS从站把地址映射刎保抖符力器K的地正超过9999的部分.ModbusMaster彬议比交持超过9999的保持寄存地址.地址范图为400001-465536.只需在调川MBUS_MSG/付序时绐AddrIiH相应的值即叭1416768ZModubsMaster犷展地并校式仅土材保持寄存器区.小女拈其他地址美Y.1存储区范用错i5?2季法波特率或校验3作法从站地址4收Mbus参数的IF法值5保持寄存,lModbus从站符号地H币A5接收校的福族7接收CRCWiW3作法功能1
7、.i求/不支齐的功能9求中有非法存储区地ft费.否则在运行时会产生精俣,不能正常通收.组强Modbus中的保持得舞区按字”,址,即MaXHO2规定的是VW而不是VB的个数.在图2的例广中,燃定了ModbUS保持寄存!区从VBO起先(HoJdStarl=VBO,并旦保持寄亦潺为100o个?IMaxHoId=10.IM保特存存器以字(阳个字节)为单位.实上这个通俗缓冲区占用了VBO-VBI999M20个字节.因此安排用指令保称妆据仅时至少婪从VB2000是先.当然保持M:不火定要从VBO&先.爪套,你选用的CPU的V存储K大小!CPU里与不同VBt把存储区大小不同依需须要让杼Modbus保持寄存卷
8、区域的大小.Qti含ModbsRTU从站折分用的项H幅炜FttftJCPU1.在编程小“机(PGPC)上运行一些MOdbUS制试软件可以恰验S7200的MOdbsRTU通信是否正常.这对府找故障点很有川.MiitiXfIifi过计算机中口DPC.PPI电缎连接CPU.假如必要.须将PC.PPI电也设置在力由口通传方式.可到”就件下找网站找J类似轨f)KtodScan32等,2.3ModbusRTU从站地址与S7-200的地址对应M(XjbUS地址总是以OOOO八30004之类的形式出现.S7-200内部的数据存他区与MOdbUS的0.1、3、4共4类地址的对应关忝如下1/2.MOdbIlS地址
9、对应混ModbusAttS7-200*BO(X)OlQ00128CX),O-Q15.7101-101280.0-115.7JoOOl-30032AlWO-AJW6240001-4xxxx-T42(xxxx-1)依据ModbUS运佑协议,ModbUS数1的地址运用OOxxx.10xxx,30xxx和40XXX的形式,分别表示牧字/筠出、改字谕入.构拟策输入等皎烟地展.在运用S7-200的指令源时.Modbus故案地址与S7-200的I,。和软据#WlX地址间有特定的对应关廉.行与设备我明它支势McdbusRTU通信协议.似也具体供应读巧数据的具体逸加帕格式,其中包括如何指定Modbus站的地址,
10、须妥或写数械类K!.长度容笄.蚊据彷勺特定字节指出北拧令读写的数据类型和地址,此字节的数据内加印所布功能码”,如功傕1指定读取单个,8个数输出点的值.支持MOdbUS协议的设备或软件,运用时用户悒谀Tl成衣到的应i是MOdbUS数据地址.ModbUS地及所访问的敏到.足通过各种“功健”没、向来.功能研是Modbus地址的帐层.假如ModbUS通侑的方供应的所谓Modbus协议只有功能码.则须要密思了解此切傥;;。Modbus地址间的对应关系.徐,Iocbus指令阵JH功后,如何通过同一个通信珀门进行CPUKl控?ModbUS指令际运用的是CPU的自由口翅侑功的,工作在自由Il梗式下的通讯口不偃
11、运用MlCrOVIN的PPI编程通信监控.联如通信口都已经被占用,可以考虑: 加个通(8澳块(lEM277.CP243-1,EM241等)扩展出个片探通信口 中止自由口横式.可以将CPU上的模式开关从RUN拨到STOP:保持处于RUN状态.W程序件止指令底的Modbus铁式(参见指令率应用)中为何T泗HMI轨件运用ModbusRTU读取S7-200中的实效会出现的谈?仃些HMl软件运用ModbUSRTU通信协议时,处理存储在数据保抒存。器中的实软浮.点数)的方式j西门子的实数保存格式不同.西门子的P1.C善街”福字节怔地址*低字节高地址”的设律.MOdbUSRTU的保价将在洪总足以“字(双字节
12、)为唯位,血个实数须4个?节(双字)衣示.HMI软件在处理时可能会把保持嘀存瑞的两个字互换位Jft造或不能识别以西门子格式表示的实效.tKtoHMI软件方无法处理这种失数.则可在S7-200CPU中级程格存入数粼谖冲区(保持f器区)的实散的高字和低字互换,的为何“的HMI软件川ModbuSRTU可以读取作为从站的S7-200的内容,但不能4人?叫健虻软件达川JModbUS功德15(与多个离敏量)或类似功能(功能16.S7200从站协议守“以繁字IV地址边界.操作步低(以KtodbusRTU库指令为例):Prqeal(CPU224RE1.01.22)OMAIN(OB115rt住指令树的Project(rflll.以双标石城软击ProgramBtockfVfi),在冲出的快决菜单中选抒1.OraryMemory,如图2所示3OSBR.0(SOIN1.OUN1.bfdfyMemoiyPrctgMbusjnit(SBRi)iQMBUSeS1.AVES6R2)IaMBUS1