您现在所在的是:

西门子SIEMENS

回帖:3个,阅读:906 [上一页] [1] [下一页]
1546
chao9990
文章数:69
年度积分:50
历史总积分:1546
注册时间:2005/9/4
发站内信
发表于:2010/9/19 14:36:03
#0楼
SIMATIC S7-221通过自由通信口模式控制贺氏(Hayes)调制解调器
概述
这一应用描述了如何通过SIMATIC调制解调器来使用与标准贺氏(Hayes)兼容的调制解调器,以及如何发送信息串。与S7-200相连的调制解调器,通过自由通信口模式(Freeport Mode)拨号叫另一台S7-200。由于贺氏调制解调器只能支持7个奇偶数据位,因而不能使用PPI模式,所以只能通过自由通信口模式来发送信息。
S7-200也可用作通信从设备。
例图















程序框图


程序和注解
本程序长度为189个字。

// 该应用将对通过调制解调器呼叫主系统进行初始化。
// 如果有信息要发送,S7-200发送信息给调制解调器,数据包括所要呼叫的电话号码和所要发出的信
// 息,信息存储在PLC的存储器中。
// 程序结构:
// MAIN 对程序进行初始化
// SBR 2 拨号、发送和切断
// SBR 1 对信息和自由通信口模式进行初始化
// INT 8 捕捉并处理来自调制解调器的响应

// * * * * * * 主 程 序 * * * * * *

// 主程序

LD SM0.1 // 如果第一次扫描,则
CALL 1 // 对信息进行初始化
LDB= +0,MB0 // 如果要发信息,则
NOT //
CALL 2 // 调用子程序进行发送。
LD SM0.1 // 如果第一次扫描,则
MOVB 16#1,MB0 // 对发送的信息进行初始化
MEND // 主程序结束

// * * * * * * 子 程 序 2 * * * * * *

// 子程序2拨号,发送信息,然后切断。
// 子程序2

SBR 2 // 子程序2
LDB= 16#0,MB0 // 如果命令有效,则
NOT
TON T37,600 // 激活定时器T37(100ms×600=60s)
LD 737 // 如果定时器T37到时,则
MOVB 16#FF,MB3 // 显示错误
STOP // 异常结束

LD SM0.0 // SM0.0总是1
TON T38,15 // 运行定时器T38(15×100ms=1.5s),可用于所有情况。

// 状态1――拨号叫调制解调器

LD M0.0 // 如果处于拨号状态,则
XMT VB1010,0 // 拨号叫调制解调器
MOVB 16#2,MB0 // 转到等待状态
CRET // 异常结束


// 状态2――等待连接和发送信息

LD M0.1 // 如果处于等待连接状态
A M2.1 // 且得到连接响应
A T38 // 且等待定时器T38到时,则
XMT VB130.0 // 发信息
MOVB 16#4,MB0 // 转到等待状态
CRET // 条件返回

// 状态3――等待发送信息

LD M0.2 // 如果正在等待发送结束
A SM4.5 // 且发送已结束,则
MOVB 16#8,MB0 // 转到挂起(hang up)状态

// 状态4到8:挂起电话
// 挂起电话有以下5种状态(状态4至状态8):
// 4) 等待1.5秒
// 5) 发换码(Escape)序列(+ + +)
// 6) 等待1.5秒
// 7) 发挂起命令
// 8) 等待离线

// 状态4――第一次挂起暂停

LD M0.3 // 如果是第一次等待,则
MOVB 16#10,MB0 // 显示发送状态,
R T38,1 // 复位等待定时器T38
MOVW +0,VW1008 // 清除“+”计数器
CRET // 跳过剩余部分

// 状态5――发送换码(Escape)序列,这必须是发送3条信息的序列,只发送含3个字符的一条信息,
// 它将不起作用。

LD M0.4 // 如果是发换码序列状态
AW= +3,VW1008 // 且计数器=3,则
MOVB 16#20,MB0 // 转到第二等待状态
R T38,1 // 复位等待定时器T38
CRET // 返回

LD M0.4 // 如果是发送状态,且
A T38 // 等待定时器T38到时,则
XMT VB1000,0 // 发送换码序列
INCW VW1008 // “+”计数器加1
CRET // 返回



// 状态6――第二次挂起暂停(pause)

LD M0.5 // 如果是第二等待状态,且
A SM4.5 // 发送完毕,则
MOVB 15#40,MB0 // 显示挂起状态
R T38,1 // 复位等待定时器T38
CRET // 返回

// 状态7――发送挂起命令

LD M0.6 // 如果是挂起状态
A T38 // 且等待定时器T38到时,则
XMT VB1002,0 // 发送挂起命令
MOVB 16#80,MB0 // 转到第三等待状态。

// 状态8――等待来自调制解调器的ACK

LD M0.7 // 如果是第三等待状态,且
A T38 // 等待定时器T38到时,则
MOVB 16#0,MB0 // 发送无效
MOVB +0,MB2 // 清除错误响应
RET // 子程序2结束

// * * * * * * 子 程 序 1 * * * * * *

// 子程序1执行信息和自由通信口模式的初始化
// 存储单元分配:

// V1000-V1001 在线换码字符序列
// V1002-V1007 挂起命令
// V1008-V1009 换码字符序列计数器
// V1010-V1??? 拨号命令和电话号码

// 子程序1

SBR 1 // 子程序1
LD SM0.0 // SM0.0总是1
MOVW 16#143,VW1000 // 在线换码序列字符(+)
MOVB 16#5,VB1002 // 设置挂起命令
MOVD 16#41544830,VD1003
MOVB 16#D,VB1007 // 回车

MOVB 16#9,VB1010 // 设置拨号指令
MOVD 16#41544454,VD1011 // 用按钮拨号
MOVD 16#32363137,VD1015 // 2617:一个调制解调器电话号码
MOVB 16#0D,VB1019 // 回车,发送信息
MOVB +20,VB130 // 设置一条发送信息:S7-200 PHONE HOME


MOVD 16#53372D32,VD131 // 字符S7-2
MOVW 16#3030,VW135 // 字符00
MOVW 16#2020,VW137 // 字符
MOVD 16#50484F4E,VD139 // 字符PHON
MOVB 16#45,VB143 // 字符E
MOVB 16#20,VB144 // 字符
MOVD 16#484F4D45,VF145 // 字符HOME
MOVW 16#D0A,VW149
MOVB 16#9,SMB30 // 设置自由通信口:9600波特,每字符8位,无奇偶校
MOVB +0,MB0 // 显示空状态
MOVB +0,MB2 // 清除错误响应
ATCH +8,8 // 指定接收中断事件8调用中断程序8
ENI // 允许用户中断
R T37,1 // 复位定时器T37
REN // 子程序1结束

// * * * * * * 中断程序 8 * * * * * *

// 这个中断服务程序捕捉来自调制解调器的响应并且处理它们,代码的含义:

// 0 // OK(好)
// 1 // 连接
// 2 // 振铃
// 3 // 无载体
// 4 // 错误
// 5 // 连接1200
// 6 // 无拨号按钮
// 7 // 忙(占线)
// 8 // 无回答
// 10 // 连接2400
// 11 // 连接4800
// 12 // 连接9600

// 如果选中选项X0,则只有代码0,1,2,3,4。
// 代码0和1是可接受的,代码2、3、4是错误的。
// 实际被接收的框架是代码加CR

// 中断程序8

INT 8 // 中断程序8

LDB= 16#D,SMB2 // 如果CR
CRETI // 则异常结束

LDB= 16#30,SMB2 // 如果“0”(OK)
MOVB 16#1,MB2 // 则置“OK”标志
CRETI // 返回

LDB 16#31,SMB2 // 如果“1”(连接),则
MOVB 16#2,MB2 // 置连接状态
R T38,1 // 复位等待定时器T38
CRETI // 返回
MOVB 16#4,MB2 // 否则,显示出错标志
RETI // 中断子程序8结束
1546
chao9990
文章数:69
年度积分:50
历史总积分:1546
注册时间:2005/9/4
发站内信
发表于:2010/9/19 14:41:40
#1楼
LD SM0.0  // SM0.0总是1
MOVW 16#143,VW1000  // 在线换码序列字符(+)
MOVB 16#5,VB1002  // 设置挂起命令
想请教这几行的意思。。。。MOVW 16#143      MOVB 16#5有什么作用??
1546
chao9990
文章数:69
年度积分:50
历史总积分:1546
注册时间:2005/9/4
发站内信
发表于:2010/9/19 15:18:04
#2楼
请高手帮帮忙。。。。。
749
xufenghu1
文章数:60
年度积分:50
历史总积分:749
注册时间:2010/9/20
发站内信
发表于:2010/9/20 10:45:11
#3楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004