最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

西门子S7-200读取温度示例

来源:动视网 责编:小OO 时间:2025-09-26 00:16:25
文档

西门子S7-200读取温度示例

西门子S7-200与上位机通讯,读取温度值的程序范例!(2010-04-2616:53:00)西门子S7-200与上位机通讯,读取温度值的程序范例! PLC主程序网络1//设置控制方式为自由口通信方式,启动接收字符中断//   PLC首次扫描   自由口通信,波特率为9600,数据位8,停止位1,无校验   初始化RCV,允许RCV,有结束符,检查空闲时间   结束符为A   空闲时间为5MS   一次接收的最大字符为6个   启动通信口,接收完成中断   全局允许中断   接收数据LD   
推荐度:
导读西门子S7-200与上位机通讯,读取温度值的程序范例!(2010-04-2616:53:00)西门子S7-200与上位机通讯,读取温度值的程序范例! PLC主程序网络1//设置控制方式为自由口通信方式,启动接收字符中断//   PLC首次扫描   自由口通信,波特率为9600,数据位8,停止位1,无校验   初始化RCV,允许RCV,有结束符,检查空闲时间   结束符为A   空闲时间为5MS   一次接收的最大字符为6个   启动通信口,接收完成中断   全局允许中断   接收数据LD   
西门子S7-200与上位机通讯,读取温度值的程序范例!

(2010-04-26 16:53:00) 

西门子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, SMB

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) > 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

 

分享 

0

文档

西门子S7-200读取温度示例

西门子S7-200与上位机通讯,读取温度值的程序范例!(2010-04-2616:53:00)西门子S7-200与上位机通讯,读取温度值的程序范例! PLC主程序网络1//设置控制方式为自由口通信方式,启动接收字符中断//   PLC首次扫描   自由口通信,波特率为9600,数据位8,停止位1,无校验   初始化RCV,允许RCV,有结束符,检查空闲时间   结束符为A   空闲时间为5MS   一次接收的最大字符为6个   启动通信口,接收完成中断   全局允许中断   接收数据LD   
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top