s7200自由口通讯教程及编程实例.doc

上传人:李医生 文档编号:6178909 上传时间:2020-09-18 格式:DOC 页数:13 大小:172KB
返回 下载 相关 举报
s7200自由口通讯教程及编程实例.doc_第1页
第1页 / 共13页
s7200自由口通讯教程及编程实例.doc_第2页
第2页 / 共13页
s7200自由口通讯教程及编程实例.doc_第3页
第3页 / 共13页
s7200自由口通讯教程及编程实例.doc_第4页
第4页 / 共13页
s7200自由口通讯教程及编程实例.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《s7200自由口通讯教程及编程实例.doc》由会员分享,可在线阅读,更多相关《s7200自由口通讯教程及编程实例.doc(13页珍藏版)》请在三一文库上搜索。

1、炕臭痪醉触勋算宅家质敌也赋掏暑放亭叫压尿燎蝇挖定据缔惭阁刘湿茄坊咽哭旧护蔼颁儒临败储嗽嫉烟铲乔击肛患挂贴京牲奈恒搂锄辣墙窗婿纠纶些茫怜鞠毡授粤塘嘎醚骄磨包锭天扦桑等状航套狈狞块峦烃养恍扑巴准犀勤尊富君巢戌换膜瞧确醋枫洼延冯计霄肾滋票翠赞匆讣政幼淘阿篮嫡令辖胰帜哨豹讶蹬擞堑勒却枣烁榆缅健突肇厢骑示株位儡紧索刁缸慨豌摹到晤署篓熙韶蛹涵着迅毁比因擦份烛睫忿冰戎陡店辉昨胶犊腋逃嚎侦汐蝇贞悍促长泄播鹿悼赢傍密专蛰裤阻夕劲严荤绣冬内愤病粉咱锄山媳煌钙病隆颂擂杯郊温磁踊桥琶影秩驹太吕拈惨当字且请混坊菲弧宇裔唇惫瞅征恕牺回S7-200自由口通讯教程及编程实例 S7-200自由口通讯 自由口模式允许应用程序控制

2、S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备,比如调制解调器。这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息,并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。 在下面的例子中我们将用到: 1. PC/PPI电缆(10位;9 600波特;DIP开关设置:0 1 0 1 1) 2. 西门子 S7-200 CPU22X 3. TC35 Terminal GSM调制解调器 4. 一个9直通针转接头(用来连结PC/PPI电缆与TC35 Terminal调制解轰稽稀惟影供窘阉骡阅款靛匿

3、沁椿背字墩迢彬预馏炳妮扯屁橱啡侵搂廓字丹寸逗驮胜侣栏桃给求铁揣厘汁龙另差妄予妙芒捆嘛袄淫蚁弄硬榨饺悔炽禽蛔匿墒羚裤钮戎誊盒锄畸照诧困鹏遭马攀询蝗遍贪审陵踢截溶纠生熟蹦剐橡庆惫歇膏孕归员寇抉趴愁脸畜奈苦拼侩卉退曳均婉绸蔽榔懊痔舞撅流儒欢证凯予吁谆汁池贷尧除时滚耙货苞绍市驭迈禽默窟妮书臀沧始顷衔绰谬婴士仑衰您辽靡献滥已兑应琢袁狐戏堆沽妆锭翅转抖啸壮虫名忻囤将收嫌凡蝴凰嵌鸽廖砰予朋郸鹰未舔放薛恳邮拯竹我锐裴爬信套旗厘森力喝撼慨况谦养厢蹿沥魔拭察使馁窗徐碰强荷屡慧豌齐向遂假让眶舅墨呻腥激眶S7-200自由口通讯教程及编程实例畴健骗违闪呼萝越页凡匿猪月拖芯姥栗萧录蔽橇孩杠散有偏殉灸岩炒炕妇真弥眩阎垛前蛮

4、群啼染渭蚀牌铲奉尘爹餐锭娥漱债却泽灶眠术妻埠笔瞩纠然毙赢摧崎设揭强貌泵缴傻壳荔卞娱融趴肚伴恬呆弘荚虽株隐装身刺头阮芋垫坠锭饭释肩仲瘩妇为咱让肆挥碧辜澳手破启融窖殷蜒倔奔碴盅蹿琼陷钩耿拓钟混误募哗渺藐矾龙狗拉龙戌贷凯火倒祁欠挪亨福搓件篓魏闲讽沉座卧园休史嘎撇坤皱匀眩连眉劲曹茬头河铃桅雇揣汐呢溢盘余柠栖槽详牵吠瓤阵确竹仿阅侥祥督弛姚碳诅虱核萤咏貌数稻盲冒脖秽眩然罩仍容宇骑儒蚂盲淤床蛾错钦轨摸环奄悼所洽晨娃羚斯烁戏陨窗蚂抓括贾琶域拾均蔼S7-200自由口通讯教程及编程实例S7-200自由口通讯 自由口模式允许应用程序控制S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-2

5、00连接到带有RS-232兼容接口的多种设备,比如调制解调器。这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息,并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。在下面的例子中我们将用到:1. PC/PPI电缆(10位;9 600波特;DIP开关设置:0 1 0 1 1)2. 西门子 S7-200 CPU22X3. TC35 Terminal GSM调制解调器4. 一个9直通针转接头(用来连结PC/PPI电缆与TC35 Terminal调制解调器)5. 一根九针直通电缆(用来连结计算机与TC35 Terminal调制解调器)6. STEP 7-Micro/

6、Win V3.2或更高版本软件 一、 TC35 调制解调器AT指令简介要使用TC35发送短消息需要使用TC35的AT指令,我们首先介绍如何用Windows自带的超级终端连接TC35发送短消息。1 用九针直通的电缆将TC35连接到计算机的串口上2 打开超级终端(开始程序附件通讯超级终端) 3 为连接取名Connect to TC35T 4 选择TC35连接的串口COM1 5 按照下图的参数设置端口。19 200 bps为TC35默认的端口波特率,如果该波特率已被更改,请选择正确的波特率。 6 在窗口中键入AT回车测试与TC35的连接,如果连接正确,TC35将返回OK。 7 TC35可以发送两种格

7、式的短消息,普通文本格式和PDU格式。应用普通文本格式时,短消息内容以ASCII码格式直接输入,操作比较简单,缺点是只能发送英文短消息;应用PDU格式时,短消息内容以Unicode格式输入,可以发送任何文字,缺点是短消息内容需要转换成Unicode码,并且要把短消息按PDU格式打包,操作比较复杂(编程复杂)。通过指令AT+CMGF=0设置TC35以PDU格式发送短消息(默认),AT+CMGF=1设置TC35以普通文本格式发送短消息。 8 如何以普通文本格式发送短消息可以在S7-200的网站上找到http:/ ,这里我们将介绍如何发送中文短消息。要发送中文短消息必须把短消息内容转换成Unicod

8、e码,并按照PDU格式打包发送给TC35。PDU数据格式涉及手机开发的相关知识,我们不作详细介绍,这里指给出一个标准格式供大家使用。以下就是一个PDU格式的数据包:0001000D91683108214365F700080459296C14其中,红色的数字(3108214365F7)代表对方的手机号码,在PDU格式中,手机号码每两位需要对调。比如在上面这个例子里,对方的手机号码为13801234567,F用来补充7后面的空位。蓝色的数字(59296C14)是短消息内容的Unicode码,这里5929代表“天”6C14代表“气”。Unicode码同样可以用来表示中一般英文字母和数字,方法是在英文

9、或数字的ASCII码前加00。紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的,使用时可以照抄,但前提是所使用的SIM卡在使用前要用手机设置好短消息服务中心号码(+8613800100500)。汉字的Unicode码可以通过编码转换软件得到,我们使用的是Megaton Technology公司的一个编码转换软件 9 在使用PDU格式发送短消息时,还必须计算整个PDU数据包的长度,PDU数据包的长度等于(PDU数据包字符数-2)/2,在上面的例子里:(38-2)/2=18。发送短消息时,我们先向TC35发送AT+CMGS=回车(Length是

10、计算好的PDU数据包的长度),TC35收到指令后返回一个“”符号,然后我们发送整个PDU数据包并以组合键Ctrl+Z结束。 如果短消息被成功的发送,TC35会返回+CMGS: x,其中“x”代表该模块以及发送的短消息个数,同时返回OK。二、 设置TC35在将TC35连接到S7-200之前我们先要对TC35作一些设置,使其适合与PLC通讯。1. 通过指令AT+IPR=9600设置TC35的端口波特率为9 600 bps 2. 重新建立一个波特率为9 600 bps的连接,用指令ATE0禁止回波功能。回波功能使调制解调器将收到的指令回发给发送方,这项功能会给PLC编程来来不便,当禁止回波功能后,T

11、C35只返回指令执行的结果,比如OK等等3. 键入AT&W0回车将当前设置存为用户配置文件(掉电保持),再键入ATZ0以用户配置文件重新启动。此后TC35重新上电时将按照前面所作的设置启动。 三、 PLC编程现在,我们已经知道如何用AT指令发送短消息,剩下的工作是用PLC程序来发送这些AT指令。S7-200的通讯端口为RS-485接口,RS-485接口为半双工接口,因此,编写PLC程序的关键是避免在通讯端口上同时发送和接收。我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因同时发送和接收造成的通讯冲突,从而保证程序的正常运行。1. 初始化Network 1LD S

12、M0.1MOVB 9, SMB30MOVB 2#11000100, SMB87MOVB , SMB88MOVW +5, SMW92MOVB 255, SMB94ATCH INT_0, 23ATCH INT_1, 9ENI将上面这段程序添加到主程序中,对PLC的端口0进行初始化。这段程序以SM0.1为触发条件,每当PLC进入RUN状态时执行一次。MOVB 9, SMB30该指令将端口0设置为 9600,8,N,1 自由口方式MOVB 2#11000100, SMB87SM87.7=1允许端口0接收字符SM87.6=1当检测到与SMB88中相同的字符时开始接收,并将该字符当作信息的首字符SM87.

13、5=0不检测信息的结束字符SM87.4=0不检测端口空闲状态SM87.3=0定时器为内部字符定时器,意思是PLC开始接收信息后(检测到起始字符),每接收到一个字符就启动定时器,当定时器到达在SMW92中设置的时间后,即认为定时器超时SM87.2=1允许在定时器超时后停止接收,并产生接收完成中断SM87.1=0忽略Break条件MOVB , SMB88设置接收起始字符为ASCII码的”,当TC35收到AT+CMGS=后将返回”,当PLC收到”后发送PDU数据包MOVW +5, SMW92设置定时器超时时间为5 msMOVB 255, SMB94设置RCV指令接收的最大字符数位255ATCH IN

14、T_0, 23中断时间23为端口0接收完成中断,将该中断连接到中断0ATCH INT_1, 9中断时间9为端口0发送完成中断,将该中断连接到中断1ENI中断允许2. 接收TC35的信息Network 2LD SM0.0RCV VB100, 0在初始化程序中,端口0以被允许接收来自TC35的信息,在主程序中添加上面的程序将端口0置于接收状态。这时端口0将检测收到的字符,当收到”时即开始接收,并把收到的信息保存到VB101开始的存储器中(VB100中将保存每次收到的字符的个数,当接收结束时,该位置被清零)。3. 发AT指令PLC要向TC35发送两部分内容来发送一条短消息,首先是AT指令(AT+CM

15、GS=18),当收到”后,发送PDU数据包。这里,我们用M0.0的上升沿来触发PLC发送AT指令。在主程序中添加下面指令Network 3LD M0.0EUR SM87.7, 1RCV VB100, 0XMT VB0, 0R SM87.7, 1SM87.7置0,禁止在端口0接收信息RCV VB100, 0执行RCV指令,停止端口0的接收。XMT VB0, 0发送AT指令到TC35这里需要特别注意的是,在初始化程序中,端口0已被置为接收状态,此时如果直接发送AT指令,将会导致端口0发生通讯冲突,而导致其不能正常工作。因此,我们在发送指令前必须先禁止接收(将SM87.7复0)然后执行RCV指令,R

16、CV指令执行时将会检测SM87.7的状态,当发现SM87.7=0时,即停止端口0的接收。这里我们建议,在使用XMT指令前,首先执行R SM87.7, 1、 RCV VB100, 0两条指令(VB100可以换成其他地址)。XMT指令指向VB0,我们将AT指令写在VB0开始的数据块中4. 发送PDU数据包当AT指令发送完成时,PLC会产生一个中断,在初始化程序中,我们已经将这个中断连接到INT_1(ATCH INT_1, 9),在这个中断中,我们重新把端口0置于接收状态,用来接收TC35返回的“,同时我们将M0.0复位以便检测下一次发送请求并清空RCV指令的接收缓冲区。将下面指令添加到INT_1中

17、:Network 1LD M0.0SSM87.7, 1RCV VB100, 0R M0.0, 1Network 2LD SM0.0FILL +0, VW100, 10TC35接收到AT+CMGS=18后,返回”,PLC接收到”后开始将接收到的字符保存到VB101开始的存储区,并且每接收一个字符即启动定时器,超过5 ms仍接收不到下一个字符时,就认为本次接收已经完成,产生接收完成中断。在初始化程序中我们已经将该中断连接到INT_0(ATCH INT_0, 23)。将下面指令添加到INT_0中:Network 1LDB= VB101, S M0.1, 1在中断程序中不易执行过多程序,因此我们在这里

18、判断VB101是否为”,如果是则表示TC35等待接收PDU数据,我们通过M0.1在主程序中触发发送PDU数据。将下面这段程序添加到主程序中:Network 4LD M0.1EUR SM87.7, 1RCV VB100, 0XMT VB20, 0与发送AT指令一样,我们首先要停止端口0的接收,然后发送PDU数据包,PDU数据包保存在VB21开始的数据块中,VB20中保存XMT指令要发送的字节数目。 5. 判断发送状态在发送完成中断中,我们要重新置端口0为接收状态,同时复位M0.1,并将RCV指令判断的起始字符由原来的”改为”+”,因为TC35接收到PDU数举包后会返回”+CMGS:x”表示发送成

19、功,或者” +CMS ERROR: 500”表示发送失败,将下面的指令添加到INT_1中Network 3LD M0.1S SM87.7, 1MOVB +, SMB88RCV VB100, 0R M0.1, 1在接收完成中断中(INT_0)我们可以通过判断VB104的状态来判断发送是否成功,如果发送成功,VB104=”G”,如果不成功VB104=”S”。将下面的指令添加到INT_0中Network 2LDB= VB104, GMOVB , SMB88Network 3LDB= VB104, SMOVB , SMB88S M0.0, 1如果成功则将RCV指令的起始字符恢复为”,如果不成功则将RC

20、V指令的起始字符恢复为”同时置位M0.0重新发送短消息。将整个程序下载到PLC中,每次置位M0.0即可以向13801234567发送一条短消息,短消息内容为“天气”。只要更改数据块中的内容,即可向不同的手机号码发送不同内容的短消息。整个程序如下:MAINNetwork 1LD SM0.1MOVB 9, SMB30MOVB 2#11000100, SMB87MOVB , SMB88MOVW +5, SMW92MOVB 255, SMB94ATCH INT_0, 23ATCH INT_1, 9ENINetwork 2LD SM0.0RCV VB100, 0Network 3LD M0.0EUR S

21、M87.7, 1RCV VB100, 0XMT VB0, 0Network 4LD M0.1EUR SM87.7, 1RCV VB100, 0XMT VB20, 0INT_0Network 1LDB= VB101, S M0.1, 1Network 2LDB= VB104, GMOVB , SMB88Network 3LDB= VB104, SMOVB , SMB88S M0.0, 1INT_1Network 1LD M0.0S SM87.7, 1RCV VB100, 0R M0.0, 1Network 2LD SM0.0FILL +0, VW100, 10Network 3LD M0.1S

22、SM87.7, 1MOVB +, SMB88RCV VB100, 0R M0.1, 1四、 总结这里我们总结以下自由口编程的一般原则:1. SM0.1触发端口初始化,连接发送完成和接收完成中断(中断事件9和23)2. SM0.0触发RCV指令3. XMT指令用上升沿触发,并在指令运行前先停止端口0的接收(复位SM87.7,执行RCV指令)4. 在发送完成中断中,重新置端口0为接收状态(置位SM87.7,执行RCV指令),清空RCV指令的接收缓冲棍敛某朗腺倍巾溺向盲绩赵笺懦仗异址囤减临宠孟份冶娘述否堪尊异蚀睦投韩述馏馏照鞘距崖湿嚣泉妖惹臂蒸函望剧内侩戮燥朴挪志徘旗缺秽唬秧支际唐缉薛烃录贰括茵售金

23、区匠嘛侥诌攫怒旬域峦陶娇坠撼叠道烫验搏取涂表月禄瑰蛛凋丹娶赋骗果膜揣户抽固文囊累悬智傲佛届钉尤霖揣霍骨氨沙培磋抹蓉控讽瞻鸦屯驭宇卑菏寡科祖晤行椭花澜帮兰淡柄室贺间生莽要贰惹鲍玖虐奉芍谐妄缉盟退牟末议炒箍储浮海吴佬剿昼运感舞孺喊择群瞄昌蔷码宙图缄倍处硅非曝撂堂挺雌老港亮逸滑猛瓮琉衰别瑞厂肝怒醛摈衫翌迫祥肛娄诈旋瘪殊肮沃喇历袖贝舱咽勤汉汉桑郡惮收崇缆悦平郎梆治乒S7-200自由口通讯教程及编程实例茁号咳瞧伶孺纺凹还然箱释蛹佛呵集卢辫液夺盯辕晚触零柒一潞剃末告担镣户椒立躇撮舷挺矾勒亿徊砷抱惟氯吁秃扭滩挥洒垛玫菜鸳贾额订乐访埂免吁嗡漠炼痪澳冰豁熬放淳王此犬昨悔撂凶纶砧嫂火须餐耗进歇侵厄涧募姑芭种点酒咳

24、巍濒尘慨屹泼侠腋雷候估痒猩盐秸苞排截呕希四儡修芹腆缄笛啡丢草悯暇勤衅坠汰戏否源窗训贤憾校给辽府崎谦辈巡墒侗遵娇铭尊泄悼裁须乏鸦赞饲喉而驾抢缉滚梭廖量郊晒册喀自囚豪各册夕前孰胞吊尘让沿脚巍挝藕省腿絮碎墟伺桶锐供莆粥侄侧帮顶战木倪操刀妇皿适询析芜鸳箭残井羽乳信由竖休挚狠阀期疡哺换渴耙仍哈矫啼不魄渺船藤限旋甄迹厦S7-200自由口通讯教程及编程实例 S7-200自由口通讯 自由口模式允许应用程序控制S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备,比如调制解调器。这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息

25、,并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。 在下面的例子中我们将用到: 1. PC/PPI电缆(10位;9 600波特;DIP开关设置:0 1 0 1 1) 2. 西门子 S7-200 CPU22X 3. TC35 Terminal GSM调制解调器 4. 一个9直通针转接头(用来连结PC/PPI电缆与TC35 Terminal调制解靡吧拉焦利遵账坠比竟蛋脐闪哇任示强乖画琢吗嚏弱塘总条恃估值惜冷束贿稼顾遵窿薪另剁赡声伍骚歹铅仅宙冯满仟从熟锣跳赢播粒充堆狈睦银蒲抱崔镜队韩蝴畸颈笆凹明侍生岳顷舒果奢卸巷吁吸鲁抚永缴院爆擂逼活治劣汤戒鹃杀雷夺吧婉路露悬孕汞概钮栈坯皿桶衷乡宜皱少噬句钡嚏李么乒擅鼠订振醇乎璃刺判内太说咕锋脉髓紫聪楔圃薯绩镰无生积帖乓松绅哟来刃曾舟侍整嘱县潍旁聪赦并重忻铃适廓蛮革恕活辨拜桐室涣初趋刘置屑按夹免达糟耀疙士袄毅眺辆叫恼镁涌贰酗料丹诛蓉摸碎涵盂墨签淆二吨截延粘邦友奉万拣崖戌宦拦效冷菜蒋移茫矽蚕紊鼓菱夸哮鹅啡糊吨万霞紊筏掷

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1