1、打开STEP 7-MicroWINSMART编程软件
2、给SMB30赋值16#09,即定义通信协议为自由口模式,无校验、波特率9600bit/s、8个数据位。
3、定义接收条件SMB87=16#E0:即允许接收、使用起始符、使用结束符。
4、设定起始符SMB88=16#AB,设定结束符SMB89=16#BA。
5、设定接收最大字符数SMB94=10
6、定义接收数据区从VB100开始,发送数据区从VB0开始
7、使用中断子程序来循环接收与发送。
8、主程序如下:
9、中断子程序INT0,延时50ms进入中断子程序INT2
10、中断子程序INT2:执行发送指令发送数据
11、中断子程序INT1:发送完成进行等待接收同时分离延时中断事件号。
注意:在使用中断子程序执行接收与发送指令时,由于中断的反应速度太快,所以在接收完成后延时一段时间(50ms或100ms)再执行发送指令。
二、定义三菱FX2N的通信格式
1、打开GX Works2编程软件。
2、定义通信格式D8120=H0F81,即8个数据位、无校验、1个停止位、波特率9600bit/s、有起始符、有结束符、无顺序RS-485接口。
3、设定起始符D8124=16#AB,结束符D8125=16#BA。
4、设定接收超时时间D8129=50(时基10ms)。
5、设定接收/发送数据为8位处理模式,在默认情况下为16位处理模式,若D8161为ON则为8位处理模式(低8位)。
6、使用——[RS S m D n] 指令定义发送、接收数据起始地址及数据长度。S为发送数据起始地址;m为发送数据长度;D为接收数据起始地址;n为接收数据长度。
注意:发送/接收数据缓冲区都不包含起始符与结束符,若只接收无发送则,m=0;若只发送不接收,则n=0。
7、发送请求位M8122,即每接通(沿触发)一次M8122执行一次发送命令,且该位在发送完成后会自动复位。
8、接收完成标志位M8123,即每次接收完成该位都会接通,该位处于接通状态则无法接收新数据,且该位不会自动复位需手动复位,可用M8123的触点作为条件复位M8123的线圈状态,这样在接收完成后相当于自动复位M8123。
注意:三菱→西门子:虽然发送数据缓冲区中的数据不包含起始符与结束符,但是,D8124(起始符)与D8125(结束符)中的数据也会一起被发送给对方,也就是西门子PLC接收到的数据中包含有起始符与结束符。如RS指令中设定发送的字节数为3个,那么西门子PLC接收缓冲区定义的接收字节数应为5个,其中第一个字节为起始符最后一个字节为结束符。
西门子→三菱:三菱的接收数据缓冲区也如此,若启用起始符与结束符,则在西门子PLC的发送数据缓冲区中第一个字节为起始符最后一个字节为结束符,那么FX2N的接收数据缓冲区中也不包含起始符与结束符(起始符与结束符通过D8124、D8125设定),也就是RS指令中设定的起始字节接收到的是西门子PLC发送数据的第二个字节。如西门子PLC发送5个字节数据,那么FX2N只需接收3个字节即可。
9、程序如下:
-
FX2N
+关注
关注
1文章
76浏览量
12871 -
西门子S7-200
+关注
关注
1文章
19浏览量
7850
原文标题:西门子S7-200smart与三菱FX2N自由口通信
文章出处:【微信号:GKYXT1508,微信公众号:工控云学堂】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论