1746-OB16E
1746-OB16E
<*n><*n style="font-weight:normal;font-size:7pt;line-height:normal;"> *n>PLC*n><*n style="font-family:宋体;">编程*n>
<*n style="font-family:宋体;">现在,我们已经知道如何用*n><*n>AT*n><*n style="font-family:宋体;">指令发送短消息,剩下的工作是用*n><*n>PLC*n><*n style="font-family:宋体;">程序来发送这些*n><*n>AT*n><*n style="font-family:宋体;">指令。*n><*n>S7-200*n><*n style="font-family:宋体;">的通讯端口为*n><*n>RS-485*n><*n style="font-family:宋体;">接口,*n><*n>RS-485*n><*n style="font-family:宋体;">接口为半双工接口,因此,编写*n><*n>PLC*n><*n style="font-family:宋体;">程序的关键是避免在通讯端口上同时发送和接收。我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因同时发送和接收造成的通讯冲突,从而保证程序的正常运行。*n>
<*n>1.<*n style="font-size:7pt;line-height:normal;"> *n>*n><*n style="font-family:宋体;">初始化*n>
<*n style="color:navy;">LD SM0.1*n>
<*n style="color:navy;">MOVB 9, SMB30*n>
<*n style="color:navy;">MOVB 2#11000100, SMB87*n>
<*n style="color:navy;">MOVB '>', SMB88*n>
<*n style="color:navy;">MOVW +5, SMW92*n>
<*n style="color:navy;">MOVB 255, SMB94*n>
<*n style="color:navy;">ATCH INT_0, 23*n>
<*n style="color:navy;">ATCH INT_1, 9*n>
<*n style="color:navy;">ENI*n>
<*n style="font-family:宋体;">将上面这段程序添加到主程序中,对*n><*n>PLC*n><*n style="font-family:宋体;">的端口*n><*n>0*n><*n style="font-family:宋体;">进行初始化。这段程序以*n><*n>SM0.1*n><*n style="font-family:宋体;">为触发条件,每当*n><*n>PLC*n><*n style="font-family:宋体;">进入*n><*n>RUN*n><*n style="font-family:宋体;">状态时执行一次。*n>
<*n style="color:navy;">MOVB 9, SMB30*n> |
<*n style="font-family:宋体;">该指令将端口*n><*n>0*n><*n style="font-family:宋体;">设置为*n><*n> 9600,8,N,1 *n><*n style="font-family:宋体;">自由口方式*n> |
<*n style="color:navy;">MOVB 2#11000100, SMB87*n> |
<*n>SM87.7=1 *n><*n style="font-family:宋体;">允许端口*n><*n>0*n><*n style="font-family:宋体;">接收字符*n> <*n>SM87.6=1 *n><*n style="font-family:宋体;">当检测到与*n><*n>SMB88*n><*n style="font-family:宋体;">中相同的字符时开始接收,并将该字符当作信息的首字符*n> <*n>SM87.5=0 *n><*n style="font-family:宋体;">不检测信息的结束字符*n> <*n>SM87.4=0 *n><*n style="font-family:宋体;">不检测端口空闲状态*n> <*n>SM87.3=0 *n><*n style="font-family:宋体;">定时器为内部字符定时器,意思是*n><*n>PLC*n><*n style="font-family:宋体;">开始接收信息后(检测到起始字符),每接收到一个字符就启动定时器,当定时器到达在*n><*n>SMW92*n><*n style="font-family:宋体;">中设置的时间后,即认为定时器超时*n> <*n>SM87.2=1 *n><*n style="font-family:宋体;">允许在定时器超时后停止接收,并产生接收完成中断*n> <*n>SM87.1=0 *n><*n style="font-family:宋体;">忽略*n><*n>Break*n><*n style="font-family:宋体;">条件*n> |
<*n style="color:navy;">MOVB '>', SMB88*n> |
<*n style="font-family:宋体;">设置接收起始字符为*n><*n>ASCII*n><*n style="font-family:宋体;">码的*n><*n>”>”*n><*n style="font-family:宋体;">,当*n><*n>TC35*n><*n style="font-family:宋体;">收到*n><*n>AT+CMGS=<Length>*n><*n style="font-family:宋体;">后将返回*n><*n>”>”*n><*n style="font-family:宋体;">,当*n><*n>PLC*n><*n style="font-family:宋体;">收到*n><*n>”>”*n><*n style="font-family:宋体;">后发送*n><*n>PDU*n><*n style="font-family:宋体;">数据包*n> |
<*n style="color:navy;">MOVW +5, SMW92*n> |
<*n style="font-family:宋体;">设置定时器超时时间为*n><*n>5 ms*n> |
<*n style="color:navy;">MOVB 255, SMB94*n> |
<*n style="font-family:宋体;">设置*n><*n>RCV*n><*n style="font-family:宋体;">指令接收的字符数位*n><*n>255*n> |
<*n style="color:navy;">ATCH INT_0, 23*n> |
<*n style="font-family:宋体;">中断时间*n><*n>23*n><*n style="font-family:宋体;">为端口*n><*n>0*n><*n style="font-family:宋体;">接收完成中断,将该中断连接到中断*n><*n>0*n> |
<*n style="color:navy;">ATCH INT_1, 9*n> |
<*n style="font-family:宋体;">中断时间*n><*n>9*n><*n style="font-family:宋体;">为端口*n><*n>0*n><*n style="font-family:宋体;">发送完成中断,将该中断连接到中断*n><*n>1*n> |
<*n style="color:navy;">ENI*n> |
<*n style="font-family:宋体;">中断允许*n> |
1746-OB16E
联系人:欧工
手机:18030229050
电话:0592-5709821
传真:0592-5917519
* 3151326358
邮箱 3151326358@**
=============================
1、客户****,服务为先。
2、重承诺,*出尔反尔。
3、客户服务从细节做起。
4、细心、用心、热心、爱心。
5、*做诋毁竞争对手、污蔑同行的行为,不向客户说对竞争对手不利
的话。
6、满足客户的要求、让客户满意就是我们的工作。
==========================
1B30035H01
1C31113G02
1C31116G04
1C31122G01
1C31125G02
1C31129G03
1C31132G01
1C31161G02
1C31164G02
1C31166G01
1C31179G01
1C31179G02
1C31181G02
1C31189G01
1C31192G01
1C31194G01
1C31197G01
ALLEN BRADLEY 1336F-CWF150-AN-EN 15HP 575V-AC 19A AMP AC MOTOR
ALLEN BRADLEY 1336F-CWF200-AN-EN 20HP 500/600V-AC 24A AMP AC
NEW BOSCH 0 811 404 723 SOLENOID ELECTRO 24V-DC SERVO HYDRAULIC
NEW GENERAL ELECTRIC GE F31X139APMAJG2 FR00/0 CO*OL PCB CIRCUIT
NEW NELES A4130771 FBC2 65432108B PRINTED MODULE CARD PCB CIRCUIT
ELECTRON MACHINE CORP MPR-83 REFRACTOMETER ASSEMBLY LAB EQUIPMENT
NEW RAMSEY D07110A-E101 AC8000 REV C CPU PROCESSOR D439098
BAILEY IMMFC04 INFI 90 MULTIFUNCTION MODULE 5V-DC 8VA CO*OLLER
A* IMASI23 BAILEY SYMPHONY ANALOG SL*E 5V-DC INPUT MODULE
NEW BAILEY NCOM03 NETWORK 90 ENHANCED MODULE 24V-DC 10.0VA
DAMETRIC RRU-RM1 RMS RELAY UNIT 24V-DC 250VA 8A AMP PCB CIRCUIT
NEW BENTLY NEVADA 3500/33 3500 16 CHANNEL RELAY MODULE
NEW AMPCO RBZP2-006-DM 1 IN SANITAY TRI-CLAMP STAINLESS ROTARY
NEW GENERAL ELECTRIC GE 115D2227G4 VOLT COMP STD PCB CIRCUIT
WITTENSTEIN VDH 100-MF1-40-071-0C1 7/8 IN 1-7/8 IN 40:1 GEAR
CAMCO 902RDM8 R250 8:1 INDEX DRIVE REDUCER D504646