分享

【图文并茂】西门子S7-200smart与三菱FX2N自由口通信

 hhx1975 2018-06-01
 
工控帮
  

S7-200smart与FX2N自由口通信


一、定义SIMATICS7-200 SMART通信格式


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、程序如下:


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多