RSS
热门关键字:  编程手册  PLC  DDI  PID  泵房设计
当前位置 :| 主页>编程实例>

西门子S7-200与上位机通讯,读取温度值的程序范例!

来源: 作者: 时间:2008-06-21 点击:
标签: 西门子 S7-200 上位机 通讯 温度 程序范例

通讯与组态]西门子S7-200与上位机通讯,读取温度值的程序范例!

PLC主程序
网络1
// 设置控制方式为自由口通信方式,启动接收字符中断 //
    PLC首次扫描
    自由口通信,波特率为9600,数据位8,停止位1,无校验
    初始化RCV,允许RCV,有结束符,检查空闲时间

    结束符为 A
    空闲时间为5MS
    一次接收的最大字符为6个
    启动通信口,接收完成中断
    全局允许中断
    接收数据
LD     SM0.1
MOVB   16#09, SMB30
MOVB   16#B0, SMB87
MOVB   16#0A, SMB89
MOVB   6, SMB94
ATCH   INT_0, 23
ENI
RCV    VB199, 0
网络2
// 检测温度送VW0 //
    转换成实际温度值
    从工作站编号送到输出缓冲区
    检测温度送输出缓冲区
LD     SM0.0
MOVW   AIW0, VW0
/I     +54, VW0
MOVW   AIW2, VW2
/I     +54, VW2
MOVW   1, VW300
MOVW   VW0, VW302
MOVW   VW2, VW304
网络3
// 设置温度控制上限和下限//
LD     SM0.0
MOVW   +350, VW4
MOVW   +450, VW6


网络4
// 检测温度低于下限,则输出加温 //
LDW<   VW0, VW4
A      SM0.5
S      Q0.0, 1
网络5
// 检测温度高于上限,则输出降温 //
LDW>   VW0, VW6
A      SM0.5
R      Q0.0, 1
网络6
//准备传送参数 //
   发送字节数据,送VB99
   发送检测温度数据,送VW100
   发送工作站编号数据,送VW102
LD     SM0.0
MOVB   6, VB99
MOVW   VW300, VW100
MOVW   VW302, VW102
MOVW   VW304, VW104
网络7
// 传送数据 //
LD     SM0.5
XMT    VB99, 0

中断程序


网络1
//通信口接收数据完成后的中断 //
// SMB86 等于16#20,表示PLC收到结速符 //
    收到结束符,把收到的数据传到VB400
    中断有条件返回 
    否则继续接收
LDB=   SMB86, 16#20
MOVB   VB200, VB400

 

CRETI
NOT
RCV    VB199, 0

\\*******************************\\

VB源程序

Dim x1, k1, k2
Dim p11, p22                             '定义变量
Dim aa() As Byte                         '定义数组
Private Sub Command1_Click()             '开始监控,定时器1有效
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()             '退事程序,定时器1无效
Timer1.Enabled = False
Cls                                       '清屏


Unload Me
End Sub
Private Sub Form_Load()                   '初始化
Timer1.Enabled = False                    '定时器1无效
Timer1.Interval = 100                     '定时器1时间为0.1S
Timer2.Enabled = True                     '定时器2有效
Timer2.Interval = 1000                    '定时器2时间为1S
Picture1.ScaleMode = 0                    '定义纵横坐标
MSComm1.CommPort = 1                      '设定端口号

 

MSComm1.Settings = "9600,n,8,1"           '设定通讯波特率
MSComm1.InputLen = 6                      '输入缓冲区为6个字符
MSComm1.InBufferSize = 256                '接收缓冲器大小
MSComm1.OutBufferSize = 256               '输出缓冲器大小
MSComm1.InputMode = comInputModeBinary    '以二进制传输
MSComm1.OutBufferCount = 0                '清空发送缓冲区
MSComm1.InBufferCount = 0                 '清空接收缓冲区
End Sub
Private Sub Timer1_Timer()                               '定时器1有效,触发接收事件

 

MSComm1.PortOpen = True                                  '打开端口
ReDim aa(0 To 5)                                         '定义动态数组
k1 = 0                                                   '识别PLC站号,为1
If k1 = 0 Then MSComm1.Output = "1" + Chr(10) + Chr(13)  '发送
Do While MSComm1.InBufferCount = 0                       '准备接收数据 
Loop
aa = MSComm1.Input                                        '接收数据存入数组
If aa(0) > 64 Then GoTo xxx:
k2 = Int(aa(0) * 255 + aa(1) * 1)
Select Case k2
Case 1
p11 = Int(aa(2) * 255 + aa(3) * 1)
p22 = Int(aa(4) * 255 + aa(5) * 1)
Case Else
End Select
k1 = k1 + 1
If k1 > 2 Then k1 = 0
xxx:
MSComm1.PortOpen = False
End Sub
Private Sub Timer2_Timer()                      '绘制各中频炉的温度曲线
x1 = x1 + 1                                     '时间增加为1S
Picture1.PSet (x1, p11), vbRed                  '绘制1#炉的温度曲线,为红色 
Picture1.PSet (x1, p22), vbBlue                 '绘制2#炉的温度曲线,为黄色
Text1.Text = Str(p11)                           '输出1#炉温度值
Text2.Text = Str(p22)                           '输出2#炉温度值
Text3.Text = Str(x1)                             '输出监控时间
End Sub









Google
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
相关文章
PLC编程算法
PLC编程算法 PLC脉冲量的控制目的主要是位置控制、运动控制、轨迹控制等。例如:脉冲数在角度控制中的应用。步进电机驱动器的细分是每圈10000,要求步进电机旋转90度。那么...
作者: 点击:110 >>>查阅全文...
S7-200自由口通讯教程及编程实例
自由口模式允许应用程序控制S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备,比如调制解调器。这里我们将介绍如何用...
作者: 点击:74 >>>查阅全文...
西门子S7-200与上位机通讯,读取温度值的程序范例!
通讯与组态]西门子S7-200与上位机通讯,读取温度值的程序范例! ...
作者: 点击:40 >>>查阅全文...
使用S7-200的集成高速脉冲输出指令来控制灯泡
使用S7-200的集成高速脉冲输出指令来控制灯泡...
作者: 点击:25 >>>查阅全文...
S7-200自由口通讯VB程序
S7-200 自由口 通讯 VB 程序...
作者: 点击:65 >>>查阅全文...
s7-200与7219通讯程序用于数码管显示
s7-200与7219通讯程序用于数码管显示...
作者: 点击:14 >>>查阅全文...
PLC控制3层电梯的自动运行实例_具体分析——PLC程序
...
作者: 点击:93 >>>查阅全文...
PLC控制3层电梯的自动运行实例_具体分析——电气图
PLC控制3层电梯的自动运行实例_具体分析——电气图...
作者: 点击:137 >>>查阅全文...
PLC控制3层电梯的自动运行实例_具体分析——控制要求
在电梯轿厢运行过程中,即轿厢上升(或下降)途中,任何反方向下降(或上升)的外呼信号均不响应,但如果反方向外呼梯信号前方再无其他内、外呼梯信号时,则电梯响应该外呼...
作者: 点击:27 >>>查阅全文...
VB程序以串口方式访问电子秤实例
现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校...
作者: 点击:9 >>>查阅全文...
google提供的广告

google提供的广告