求助S7-200的自由通信调试

各位大侠,我刚开始接触PLC的通讯,我用RS232/PPI编程线调试,但是实用手册说编程线的第5个开关是控制自由通讯的,而且在STOP的状态下才能和STEP7通讯。。。。于是我把编程电缆的5开关选择0(PPI/Freeport),PLC手动置于STOP状态下,但是在连接STEP7的时候,在Communication里只能在原地址扫描到Unknown的设备。。请问应该怎么做自由口通讯的调试呢???

最佳答案

要做自由口通讯,先将编程电缆的5开关选择1,在STEP 7-Micro/WIN编程软件里面写好程序,如:
 LD     SM0.1
 AN     I2.0
 MOVB   16#09, SMB30                // SMB30配置通讯口0:自由口通讯方式,选择波特率、奇偶校验和数据位数
                                    // - 初始化为自由口通讯方式
                                    // - 选择9600波特率
                                    // - 选择8位数据位
                                    // - 选择无校验
                                    // p p d b b b m m
                                    // pp: 校验选择
                                    // 00= 不校验
                                    // 01= 偶校验
                                    // 10= 不校验
                                    // 11= 奇校验
                                    //d: 每个字符的数据位
                                    //0= 每个字符8位
                                    //1= 每个字符7位
                                    //bbb: 自由口波特率
                                    //000=38,400波特
                                    //001=19,200波特
                                    //010=9,600波特
                                    //011=4,800波特
                                    //100=2,400波特
                                    //101=1,200波特
                                    //110=115.2K波特1
                                    //111=57.6K波特1
                                    //mm:协议选择
                                    //00=PPI/从站模式
                                    //01=自由口模式
                                    //10=PPI/主站模式
                                    //11=保留(缺省设置为PPI/从站模式)
 MOVB   2#10110000, SMB87           // SMB87配置通讯口0:接收信息控制字节
                                    // SM87.7(en)=1   允许端口0接收字符
                                    // SM87.6(sc)=0   忽略SMB88(不检测起始信息)
                                    // SM87.5(ec)=1   使用SMB89的值检测结束信息(SMB89='#')
                                    // SM87.4(il)=1   使用SMW90的值检测空闲状态(空闲线时间溢出后接收的第一个字符是新的信息的开始字符)
                                    // SM87.3(c/m)=0  定时器为内部字符定时器
                                    // SM87.2(tmr)=0  忽略SMW92(不使能:当SMW92中的定时时间超出时终止接收)
                                    // SM87.1(bk) =0  忽略Break条件
                                    // SM87.0     =0  系统保留
 MOVB   35, SMB89                   // SMB89配置通讯口0:信息字符的结束符(ASCII码值:35,字符:'#')
 MOVW   +5, SMW90                   // SMW90配置通讯口0:空闲线时间段,按毫秒设定(5ms)
 MOVB   80, SMB94                   // SMB94配置通讯口0:要接收的最大字符数(1~255字节),这里是80
 ATCH   INT_0:INT0, 23              // 端口0接收完成事件(事件号:23)连接到中断0
 ATCH   INT_1:INT1, 9               // 端口0发送完成事件(事件号:09)连接到中断1
 ENI                                // 允许用户中断
 RCV    VB100, 0                    // 通讯口0的接收信箱缓冲区:VB100

 当然还有通讯处理程序,可以参考S7-200可编程控制器系统手册里的例子程序,写好程序后,下载到PLC里面,然后将编程电缆的5开关选择0,PLC置于RUN模式,用串口调试助手(网上可以下载)进行调试。

提问者对于答案的评价:
好的~~~应该一般的串口调试软件就没问题吧~~~~

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论