技术论坛

 回复:mc35/tc35的一些使用交流

返回主题列表
作者 主题
我爱小猪
侠客

经验值:811
发帖数:634
精华帖:3
楼主    2006-10-20 11:54:42
主题:mc35/tc35的一些使用交流
前些天对MC35I进行了一次测试,虽然以前已经用过TC35的模块,但是由于当初没有进行很好的总结,年长日久,又犯了很多错误.今天把这些总结出来,给自己留个醒,也希望给要用这个的朋友做个向导.
唉,小猪没有了。
我爱小猪
侠客

经验值:811
发帖数:634
精华帖:3
    2006-10-20 11:55:18
精华帖  主题:回复:mc35/tc35的一些使用交流
Mc35I-TC35I的调试方法简介:
1、 准备工作(可以根据具体变更)
1) PC;(带超级终端,串口调试助手,RS232,MICROWIN 4.0)
2) S7-200PLC(建议CPU224XP或CPU226,两个通讯口方便调试。
3) PC/PPI电缆;(2根)
4) 通讯线缆一根;接线方式:公的DB9头两个,2,3交叉,1,4,5,6,7,8,9等其余线全部直接连。设为线RA;
注:此处在TC35I的手册中说全部直连,经过试验应该需要2,3交叉,所以应该是手册上的错误。
5) 两端DB9的,一公,一母,线缆全部直接连的线一条。设为线RB;
6) MC35I 终端一个;(或者TC35I终端一个)
2、 调试步骤
1) 调试MC35I的AT指令;
a、具体连接:PC RS232 — 线RB;将MC35上电;
b、打开超级终端,设置好通讯参数(包括波特率,数据位校验等,一般设定成默认即可)如:波特率9600,数据位8,奇偶校验无,停止位1,数据流控制无。
c、发送:AT(加上回符),看返回是否为:
AT(加回车)
OK(加回车)
注:以上AT之后有回车,OK之后也有回车。
在这里:你可以尽情地尝试所有的AT指令,看能否正常返回各种信息,或者观察MC35I是否能够正常执行。
一般建议测试以下几个指令:
(1) AT(加回车)
(2) AT+CMGF=1(加回车)
这两个指令返回的都是:
原命令(加回车);(如发送的是AT,会返回 AT(加回车),OK(加回车))。
OK(加回车)
注:因为PLC内部无法打出回车,换行等符号,所以需要将这些符号转换成16进制码,一般可以查ASCII码表,例如回车符号为:16#0D;换行符号为:16#0A。等等。
如果查阅之后不够肯定到底用回车的16进制码还是换行的16进制码,那么可以进行如下方法测试得到。
将PLC和PC通过PC/PPI电缆连接,然后PLC中写自由口通讯程序,超级终端发送:AT(加回车)
或者发送:AT+CMGF=1(加回车)
命令,然后在PLC接收缓冲区内看收到的结束码是哪个,那么这个码就是实际用的码。
此方法更适用与检查一些特殊字符的16进制码,(如CTRL+Z等)。
以上测试都是测试MC35I是否正常,如果通过,则可以进入第二部测试
2)调试PLC的自由口通讯:
连接如下:
PC(RS232口) — PC/PPI — PLC PORT1;
a) 编写PLC程序,自由口通讯,让PLC启动后自动发送,通过超级终端发送回复:
b)看超级终端接收:AT(加回车)
用超级终端发送:OK(加回车)
C)然后检查PLC接收缓冲区是否正常接收到了:
原命令(加回车);(如发送的是AT,会返回 AT(加回车),OK(加回车))。
OK(加回车)
在此过程中要特别注意结束符的16进制码;
如果此项调试成功,说明自由口程序调试成功。
3) 连调:
连接如下:
PC(RS232口) — PC/PPI — PLC PORT1;
PLC PORT0 — PC/PPI — 线RA —MC35i;
a) 给PLC编写自由口通讯程序,通过PORT0自由口发送:
AT(加回车); //16进制:16#61,16#74,16#0D
或AT+CMGF=1(加回车)
b) 用PC上MICRO WIN 4.0监测PLC;看是否监测到MC35I的回复;
如果回复为:
原命令(加回车);(如发送的是AT,会返回 AT(加回车),OK(加回车))。
OK(加回车)
则该测试成功,调试结束。
4) 一般遇到的问题:
a) 在第一步单独测试MC35I的时候,MC35I没有回复;
原因一般为:
(1) 发送的命令格式不对,特别检查结束符号的正确性;
在用调试助手或者是用其他发送的时候特别要注意结束字符;
(2) 线缆不对,检查线缆是否插紧;检查线缆RB是否九针一一直连;
(3) 是否有上位机其他软件占用了串口;
(4) 是否MC35i模块问题,换一个模块;
b) 连调的时候,MC35I没有回复;
(1) 发送的命令格式是否不对;
(2) 线缆不对,检查PLC—PC/PPI—线RA连接正常;
检查线RB是否是2,3交叉,其余直连。
(3) 是否模块问题。
c) 连调时,MC35I回复原来的命令;即:发送AT(加回车),返回AT(加回车),而没有OK(加回车)等回复的返回字符;
(1) 检查PLC自由口程序中,是否设置了结束字符。将结束字符的设置去掉,改用空闲线检测的方式。

附录:自由口通讯测试程序(仅供参考):
Main:
Network1:
LD First_Scan_On
MOVB 16#09, P0_Config
MOVB 16#90, P0_Ctrl_Rcv //这里需要注意不要使用结束字符控制
MOVW 5, P0_Idle_Time //空闲线检测时间5MS;
MOVB 100, P0_Max_Char
ATCH INT_0, 23 //接收完成中断连接
ATCH INT_1, 9 //发送完成中断连接
ENI //使能中断
MOVB 10, VB700
MOVB 'a', VB701
MOVB 't', VB702
MOVB '+', VB703
MOVB 'c', VB704
MOVB 'm', VB705
MOVB 'g', VB706 //命令字发送

Network2:
LD First_Scan_On
MOVB 'f', VB707
MOVB '=', VB708
MOVB '1', VB709 //命令字发送
MOVB 16#0D, VB710
XMT VB700, 0 //发送缓冲区 VB700指定的数据

Int_0: //接收完成中断
LD Always_On
S M10.3, 1 //察看是否接收完成标志

Int_1: //发送完成中断
LD Always_On
S M10.0, 1 //察看是否发送完成标志
RCV VB200, 0 //接收缓冲区VB200

该程序只做了一次发送接收,如果需要多次,自动发送接收,可以在此基础上改动。


唉,小猪没有了。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。