资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,TWIDO modbus通讯说明书,下图是,MODBUS,主,/,从站通讯结构图:,主站,从站,1,从站,2,从站,10,从站,121,从站,30,主站,(,下层网络,),从站,2,从站,4,从站,180,从站,121,从站,51,TWIDO PLC,做从站时,只需设定相应的参数即可,不需要编写通讯程序;,TWIDO PLC,做主站时,需设定相应的参数,还需要编写通讯程序去访问从站的数据。,第七章,TWIDO PLC,通讯功能,下图是,EIA RS-232,和,EIA RS-485,型的电缆连接定义图。,如果,Twido,控制器使用端口,1,,,5,号引脚的,DPT,信号必须与,7,号引脚的,0V,相接。这意味着,Twido,控制器的端口,1,通信是,Modbus,而不是和,TwidoSoft,软件通信。,第七章,TWIDO PLC,通讯功能,7.1.1 MODBUS,主、从站通讯端口的配置方法,TWIDO PLC,的编程口和扩展通讯口都能做,MODBUS,的主站或从站,在“硬件”菜单中点击“通讯配置”菜单,出现下图“,PLC,通讯配置”界面。端口,1,、,2,的设定方法一样。设定完成后点击“确认”退出,点击“对勾”图标接受参数配置。,选择,MODBUS,协议和地址,设定通讯相关参数,第七章,TWIDO PLC,通讯功能,7.1.2 MODBUS,主站编程方法,TWIDO PLC,做,MODBUS,子站时,是被动的工作方式,不需要用户编写任何的通讯程序。,TWIDO PLC,做,MODBUS,主站时,是主动的工作方式,需要主动发送命令到各子站完成读写数据的工作。,在,TWIDO PLC,中,需要填写通讯用字表,并用,EXCH,指令完成通讯指令。,通讯字表由控制字表、发送字表、接受字表构成。一般组成格式如下表:,高字节,低字节,控制表,命令,长度(发送,/,接收),接收偏移,发送偏移,发送表,发送字节,1,发送字节,2,.,.,.,发送字节,n,发送字节,n+1,接收表,接收字节,1,接收字节,2,.,.,.,接收字节,p,接收字节,p+1,第七章,TWIDO PLC,通讯功能,控制字表、发送字表、接受字表一般存放在连续的,MW,组成的字表中,发送和,/,或接收帧的最大值是,256,字节。,“长度”字节指发送表的长度(以字节为单位,最大,256,字节),“命令”字节在,Modbus RTU,查询(除了广播)情形下必须总是等于“,01”,(,00,:只发送,,01,:发送,/,接收,,02,:只接收。,Tx,发送偏移和,Rx,接受偏移)。,“,Tx,发送偏移”它用于解决,Modbus,协议中字节,/,字的偏移问题。插入空字节,使发送表排列更整齐,“,Rx,接受偏移”字节包含信息包发送时加入的字节在接收表中的排列号(,1,表示第一个字节,,2,表示第二个字节,等等)。它用于处理,Modbus,协议中与字节,/,字的值有关的问题。例如,如果此字节包含,3,,则表中第三个字节将被填为零,使得实际接收到的第三个字节在表中变为第四个字节。,第七章,TWIDO PLC,通讯功能,7.1.3 MODBUS,主站标准协议的字表格式,TWIDO PLC,的,MODBUS,协议支持主站访问子站的位元件、字元件(位,%Mi,和字,%Mwi,),,RTU,和,ASCII,模式使用相同的表格式。,(,1,),Modbus,主站模式:读,N,位(,M,),下表是使用请求码,01,和,02,来读取子站的位元件,M,的标准格式的描述:,索引号,高字节,低字节,控制表,0,01,(发送,/,接收),06,(发送长度),(*),1,03,(接收偏移),00,(发送偏移),发送表,2,从,(1.247),01,或,02,(请求码),3,读取的第一位的编号,4,N=,读取的位数,接收表(响应之后),5,从,(1.247),01,或,02,(响应码),6,00,(由,Rx,偏移加入的字节),N,2,=1+(N,1,-1)/8,读的数据字节数,7,读取的第一个字节,(if N1),读取的第二个字节,(if N1),8,读取的第三个字节,(if N1),.,(N,2,/2)+6(N,2,是偶数,),(N,2,+1/2)+6(N,2,是奇数,),读取的第,N,个字节,(if N1),第七章,TWIDO PLC,通讯功能,大家应该也有点累了,稍作休息,大家有疑问的,可以询问和交流,8,索引号,高字节,低字节,控制表,0,01,(发送,/,接收),06,(发送长度),(*),1,03,(接收偏移),00,(发送偏移),发送表,2,从,(1.247),03,或,04,(请求码),3,读取的第一字的编号,4,N=,读取的字数,接收表(响应之后),5,从,(1.247),03,或,04,(响应码),6,00,(由,Rx,偏移加入的字节),2*N,(读取的字节数),7,读取的第一个字,8,读取的第二个字,(if N1),.,N+6,读取的第,N,个字,(if N2),(,2,),Modbus,主站模式:读,N,字(,MW,),下表是使用请求码,03,和,04,来读取子站的字元件,MW,的标准格式的描述:,第七章,TWIDO PLC,通讯功能,索引号,高字节,低字节,控制表,0,01,(发送,/,接收),06,(发送长度),(*),1,00,(接收偏移),00,(发送偏移),发送表,2,从,(1.247),05,(请求码),3,写的位元件的编号,4,写的位的值,接收表(响应之后),5,从,(1.247),05,(响应码),6,被写的位数,7,被写的值,(,3,),Modbus,主站模式:写一个位元件(,M,),下表是使用请求码,05,来写子站的一个位元件,M,的标准格式的描述:,第七章,TWIDO PLC,通讯功能,索引号,高字节,低字节,控制表,0,01,(发送,/,接收),06,(发送长度),(*),1,00,(接收偏移),00,(发送偏移),发送表,2,从,(1.247),06,(请求码),3,写的字元件的编号,4,写的字值,接收表(响应之后),5,从,(1.247),06,(响应码),6,被写的字数,7,被写的值,(,4,),Modbus,主站模式:写一个字元件(,MW,),下表是使用请求码,06,来写子站的一个字元件,MW,的标准格式的描述:,第七章,TWIDO PLC,通讯功能,(,5,),Modbus,主站模式:写,N,个位元件(,M,),下表是使用请求码,15,来写子站的,N,个位元件,M,的标准格式的描述:,表,索引,高字节,低字节,控制表,0,01,(发送,/,接收),8+,字节数(发送),1,00,(接收偏移),07,(发送偏移),发送表,2,从,(1.247),15,(请求码),3,写的第一个位元件的编号,4,N,1,=,写的位数,5,00,(不发送,偏移结果),N,2,=1+(N,1,-1)/8,写的数据字节数,6,第一个字节的值,第二个字节的值,7,第三个字节的值,第四个字节的值,.,(N,2,/2)+5(N,2,是偶数,),(N,2,+1/2)+5(N,2,是奇数,),第,N,个字节的值,2,nd,字节,接收表(响应之后),从,(1.247),15,(响应码),被写的第一位的编号,被写的位数(,=N,1,),第七章,TWIDO PLC,通讯功能,(,6,),Modbus,主站模式:写,N,个字元件(,MW,),下表是使用请求码,16,来写子站的,N,个字元件,MW,的标准格式的描述:,索引号,高字节,低字节,控制表,0,01,(发送,/,接收),8+(2*N),(发送长度),1,00,(接收偏移),07,(发送偏移),发送表,2,从,(1.247),16,(请求码),3,写的第一字元件的编号,4,N=,写的字数,5,00,(不发送,偏移结果),2*N=,写的字节数,6,写的第一个字值,7,写的第二个值,.,N+5,写的第,N,个值,接收表(响应之后),N+6,从,(1.247),16,(响应码),N+7,被写的第一字的编号,N+8,被写的字数(,=N,),第七章,TWIDO PLC,通讯功能,7.1.4,如何用程序填写,MODBUS,协议的字表,本节将以实例的方式来说明如何用赋值指令填写符合上节表格要求的,MW,字表。,例一:要求编写程序从,11,号子站读取从,MW500,开始的连续,10,个字元件。,编程思路:,1,、要求读多个字元件,所以用“,03,或,04,请求码”的表格,找到相应的表格。,2,、合理规划存放本字表的,MW,空间(因为在一个程序中可能会有多个字表,所以要合理规划),本例中从,MW200,开始。(注意:,MW200,和,MW500,在此例中完全不同的含义),3,、按照标准表格,用赋值指令对,MW200,开始的字表进行赋值,如下图:,第七章,TWIDO PLC,通讯功能,上页中的程序只是填写了控制表和发送表,实际上在程序中我们只需要填写这两个字表,接收表不用程序填写。接收表是收到响应数据后,由系统自动完成的,但我们必须给接受表预留足够的空间。,本例中三个字表总长度,L,N,6+1,N,是读的字元件的个数。这个“,L”,将在,EXCH,指令中用到。,本例中,接收表收到的数据的前两个字是系统信息,如站号、请求码等。从第三个字开始才是存放从子站读取的字元件,即,MW207,MW216,存放了从够子站读到的,MW500,MW509,。,到此,我们能算出本例中控制表、发送表、接收表总共占用了,MW200,MW216,的空间,总长度为,17,个字。,填写了控制表和发送表,并预留了接收表的长度后,还要对整个字表用发送,/,接收消息,-,交换指令(,EXCH,)执行处理,如下图:,第七章,TWIDO PLC,通讯功能,例二:要求编写程序往,11,号子站的,MW10,MW15,区间写入,6,个字元件。,编程思路:,1,、找到相应的表格;,2,、合理规划存放本字表的,MW,空间;,3,、按照标准表格,用赋值指令对字表进行赋值,如下图:,第七章,TWIDO PLC,通讯功能,上页中的程序只是填写了控制表和发送表,实际上在程序中我们只需要填写这两个字表,接收表不用程序填写。接收表是收到响应数据后,由系统自动完成的,但我们必须给接受表预留足够的空间。,本例中三个字表总长度,L,N,8+1,N,是写的字元件的个数。这个“,L”,将在,EXCH,指令中用到。,填写了控制表和发送表,并预留了接收表的长度后,还要对整个字表用发送,/,接收消息,-,交换指令(,EXCH,)执行处理,如下图:,第七章,TWIDO PLC,通讯功能,7.1.5 EXCH,指令的用法,Twido,控制器配置后可与,Modbus,子站设备通信。,TwidoSoft,为这些通信提供了下列功能:,EXCH,指令用于发送,/,接收消息。,交换控制功能模块,(%MSG),用于控制数据交换。,Twido,控制器在处理,EXCH,指令时使用指定端口的配置协议。每个通信端口可被分配一个不同的协议。,语法格式:,EXCH,指令的格式:,EXCHx%MWi:L,,,x=1,或,2,表示串行口,1,、,2,,,x=3,表示以太网端口;,L=,字表总字数,(,最大,121),。,Twido,控制器的程序中允许对同一通讯端口写多条的,EXCH,指令,但在任一时刻只能有一条,EXCH,指令被执行,因此必须在第二个交换指令,EXCHx,执行之前第一个,EXCHx,指令已执行完成。,发送几个消息时必须使用,%MSG,功能模块对,EXCH,指令进行互锁。,第七章,TWIDO PLC,通讯功能,
展开阅读全文