概述
—-本例阐明如何故自在协议完成计算机与S7-200的通讯,计算机作为主站,能够完成对PLC从站各寄存器的读/写操作。
—-计算机经过COM口发送指令到PLC的PORT0(或PORT1)口,PLC经过RCV接纳指令,然后对指令进行译码,译码后调用相应的读/写子程序完成指令要求的操作,并回来指令履行的状况信息。
通讯协议
—-在自在口形式下,通讯协议是由用户界说的。用户能够用梯形图程序调用接纳中止、发送中止、发送指令(XMT)、承受指令(RCV)来操控通讯操作。在自在口形式下,通讯协议完全由梯形图程序操控。
指令格局界说
计算机每次发送一个33字节长的指令来完成一次读/写操作,指令格局见表1 阐明:
开端字符
—-开端字符标志着指令的开端,在本例中被界说为ASCII码的“g”,不同的PLC从站能够界说不同的开端字符以接纳真对该PLC的指令。
指令类型
—-该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。
方针PLC站地址
—-方针PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格局表明方针PLC的站地址。
方针寄存器地址
—-在PLC内部能够用4个字节来表明一个寄存器的地址(但不能表明一个位地址)。前两个字节表明寄存器类型,后两个字节表明寄存器号。
00 00(H): I寄存器区
01 00(H): Q寄存器区
02 00(H): M寄存器区
08 00(H): V寄存器区
例如:
IB000的地址可表明为 00 00 00 00(H)
VB100的地址可表明为 08 00 00 64(H)
读/写字节数M
—-当读指令时,一直读回从方针寄存器开端的接连8个字节的数据(转换为十六进制ASCII码后占用16个字节),能够依据自己的需求取用,M能够恣意写入。
—-当写指令时,M表明的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表明,它将占用2个字节,此刻应向M中写入“02”。同理,假如要写入5个字节的数据,M中应写入“0A”。
要写入的数据
—-要写入的数据在指令中以十六进制ASCII码的格局表明,占用指令的B14-B29共16个字节。数据区有必要填满,但只要前M个字节的数据会被写入方针寄存器。一条指令最多能够写入8个字节的数据(此刻M中应写入“10”,代表十进制的16)
BCC校验码
—-在传输过程中,指令有或许遭到任何的搅扰而使本来的数据信号产生歪曲,此刻的指令当然是过错的,为了侦测指令在传输过程中产生的过错,接纳方有必要对指令作进一步的承认作业,以避免过错的指令被履行,最简略的办法便是运用校验码。BCC校验码的办法便是即将传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接纳方在接到指令后,以相同的方法对接纳到的字符串作异或和,并与传送方所送过来的值作比照,若其值持平,则代表接纳到的指令是正确的,反之则是过错的。
—-在本例中,bcc为指令B1到B29的异或和,BCC为bcc的十六进制ASCII码。
—-bcc=B1 xor B2 xor B3 xor B4 xor …… xor B29
完毕字符
—-完毕字符标志着指令的完毕,在本例中被界说为ASCII码的“G”,不同的PLC从站能够界说不同的完毕字符以接纳真对该PLC的指令。
PLC在接到上位机指令后,将发送一个21字节长反应信息,格局见表2
阐明:
开端字符
—-开端字符标志着反应信息的开端,在本例中被界说为ASCII码的“g”,不同的PLC从站能够界说不同的开端字符,这样上位机能够依据信息的开端字符来判别反应信息的来历。