三菱PLC通信格式字RS485标准接口通信格式,通信格式随控制设备的通信协议不同会有差异,但B0-B7位适用于所有使用RS485总线的控制设备。而b8~b15这里没有定义,留给厂家定义。菱FX通信规定了“b11b10b9”为控制线选取方式,当使用通信板卡FX2N-485-BD时,这时b11b10=11RS485标准接口通信格式位内容01b0数据长度7位8位b2b1校验位00:无校验(N)01:奇校验(O)11:偶校验(E)b3停止位1位2位b7b6b5b4波特率0011:300,0100:6000101:1200,0110:240001111:4800,1000:96001001:19200b11~b8未定义b15~b12无定义三菱PLCFX2N是写入D8120,台达PLC是写入D1120,西门子S7-200是写入SMB30或SMB130,而且仅B0~B7这8位二进制在许多控制设备中对通信格式字有一种约定俗成的写法,其约定如下:7N19600_____,______,_______,_______数据长度校验位停止位波特率b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b00000110010000000_____________________________________________0C80参数为7,N,1,9600=H0C80(所以通信格式字为H0C80)异步传送的数据格式及常用校验码在PLC与变频器等智能设备中,其数据信息帧结构都是HDLC信息帧设计的,一个完整的帧结构如图:一帧数据信息的发送,是从帧头开始到帧尾结束,依次一个字符一个字符地发送,对每个字符则是从低位b0到高位b7一位一位地连续依次发送,而一个字符一个字符地发送,字符中间是可以有间隔的,了解这一点对将来写通信程序会有所帮助的。通常把异步传送的字符数据格式和波特率一起称为异步传送通信格式这里把由多个字符组成的数据信息帧结构称为异步传送数据格式校验码:1·求和校验码(取其低8位或全部16位)可用CDD指令2·LRC校验码(这是MODBUS通信协议ASCLL方式的校验方法)将参与校验的数据(0XH)求和,取低8位的补码为校验码。补码=求反+13·CRC校验码(这是MODBUS通信协议RTU方式的校验方法)4·异或校验码(将参与校验的数据依次进行逐位异或运算最后结果为校验码)MODBUS通信协议ASCLL通信格式:1个起始位;7个数据位;1个奇偶校验位,无校验则无;1个停止位(有校验),2个停止位(无校验)。数据位是确定的,校验位,停止位,其通信格式可能的三种1):7,E,12):7,0,1和3):7,N,2起始码地址码控制码信息码校验码停止码“:”4位8位8位n*8位LRC8位8位CR,LF控制器在MODBUS网洛上以ASCLL码方式通信,在数据格式中每4位即HEX数1位都转换成ASCLL码发送,也就是每个十六进制字符(0~9A~F)都转换成ASCLL码。MODBUS的RTU通信方式RTU通信格式如下:1个起始位;8个数据位;1个校验位,无校验位;1个停止位(有校验时),2个停止位(无校验时)。同样,MODBUS的RTU方式通信格式只能是:8,E,1和8,0,1和8,N,2CRC校验可以发现,RTU方式数据格式没有帧头和帧尾,那设备如何区别这一帧和下一帧呢?规定信息帧的发送至少要以3~5个字符时间间隔开始,校验码被传送后,又要以3~5个字符的停顿才标志发送结束。例如:要命令变频器进行正转,它的数据格式中的功能码为06H,但是在发送信息时却不能用06H,这里必须先把0改成30H,把6改成36H,必须把十六进制的数据信息转换成ASCLL码才能发送。但是在RTU中就不需要转换,所以RTU通信方式比较快。起始码地址码控制码信息码校验码停止码地址码控制码信息码校验码例如:E=B1000101或H45MODBUS的常用功能码名称和功能:功能码名称功能H01读线圈状态取线圈状态H02读输入状态取开关输入状态H03读保持存储器读一个或多个保持存储器值H04读取存储器读一个或多个存储器值H05强置单线圈强置线圈的通断H06写保持存储器把字写入一个保存存储器H07回送诊断校验把诊断报告送从站H0F强制多线圈强置一组连续线圈通断H10预置多存储器写入一组连续保持存储器值其中在变频器PLC控制系统中,常用的是03H和06H,一个是读,另一个是写。当要监控变频器运行情况时就用03H读取变频器参数值和运行状况;如果想让变频器执行运行命令和改变运行参数,则用06H写入命令即可,读Y,M等的时候就要用到01H。MODBUS的查询和应答MODBUS规定:当PLC查询后,变频器回应时,它使用功能码的变化来指示是否有错误发生。对没有错误的正常应答,变频器仅回应相同的功能代码。对有错或异常的应答,变频器返回相同的功能代码时,将其最高位b7置1(MODBUS的功能代码是7位二进制数00H~7FH,其最高位b7=0)。例如:功能代码为03H时,正常应答仍为03H,异常应答时则为83H(10000011)同时,变频器还应将错误代码放入数据区告诉PLC发生了什么错误,PLC应用程序得到异议应答时,典型的处理是重发信息,或诊断并报告。通信数据格式的编写1),运行控制数据格式的编写----------------------------------------------------------------------------------------------------------------------3)PLC对变频器运行进行监控-----------------------------------------------------------------------------------------------把上面4种情况列成表,方便大家应用:在PLC与FR-A700变频器进行MODBUSRTU通信前,先设置变频器通信参数,由通信参数的设置编写通信格式字,并将通信格式字存到PLC的D8120中。低8位在前,高8位在后通信数据格式及其编制FR-A700的MODBUSRTU协议规定:数据区的首地址=保持存储器编号-40001(十进制数),得到首地址后,还必须转换成十六进制数才能发送。和其他校验不同的是,CRC校验码是一个的16位的校验码,其校验结果为16位二进制数,送入数字格式信息帧是低8位在前,高8位在后。通信传送指令RS进行串行通信时: