产品描述
1FL6062-1AC61-2AB1
通讯与组态]西门子S7-200与上位机通讯,读取温度值的程序范例!
PLC主程序
网络1
// 设置控制方式为自由口通信方式,启动接收字符中断 //
PLC**扫描
自由口通信,波特率为9600,数据位8,停止位1,无校验
初始化RCV,允许RCV,有结束符,检查空闲时间
字串6
结束符为 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 字串7
网络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 字串5
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 '清屏 字串4
Unload Me
End Sub
Private Sub bbbb_Load() '初始化
Timer1.Enabled = False '定时器1无效
Timer1.Interval = 100 '定时器1时间为0.1S
Timer2.Enabled = True '定时器2有效
Timer2.Interval = 1000 '定时器2时间为1S
Picture1.ScaleMode = 0 '定义纵横坐标
mPort = 1 '设定端口号 字串2
MSComm1.Settings = "9600,n,8,1" '设定通讯波特率
MSComm1.bbbbbLen = 6 '输入缓冲区为6个字符
MSComm1.InBufferSize = 256 '接收缓冲器大小
MSComm1.OutBufferSize = 256 '输出缓冲器大小
MSComm1.bbbbbMode = combbbbbModeBinary '以二进制传输
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区
End Sub
Private Sub Timer1_Timer() '定时器1有效,触发接收事件
字串8
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 '准备接收数据
字串4
Loop
aa = MSComm1.bbbbb '接收数据存入数组
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#炉的温度曲线,为红色
字串9
Picture1.PSet (x1, p22), vbBlue '绘制2#炉的温度曲线,为黄色
Text1.Text = Str(p11) '输出1#炉温度值
Text2.Text = Str(p22) '输出2#炉温度值
Text3.Text = Str(x1) '输出监控时间
End Sub
故障安全型自动化系统,大大提高了工厂生产过程的安全性
符合 IEC 61508 SIL3、DIN V 19250 AK6 和 EN 954-1 Cat.4 等安全要求。
如果需要,也可通过冗余设计而实现容错
安全相关的 I/O 不增加接线:
通过采用 PROFIsafe 行规的 PROFIBUS DP 进行安全通讯
基于带有故障安全模块的 S7-400H 和 ET 200M
标准模块可以使用在自动化系统的非故障安全型应用场合
隔离模块,用于在一个 ET 200M 的安全模式中组合使用故障安全型模块和标准模块。
性能范围内的高性能 CPU
适用于对性能要求很高的工厂
CPU 416-3 PN/DP 中集成了 PROFINET 功能
9 个不同 CPU 可用于 S7-400
3 个 CPU 可用于 S7-400H 和 S7-400F/FH
2 个故障安全 CPU 可用于 S7-400F
各种性能级别适用于广泛应用
CPU 412-1 和 CPU 412-2:
用于中等性能范围的小型设备。
CPU 414-2, CPU 414-3, CPU 414-3 PN/DP:
用于具有对编程、处理速度和通讯有额外要求的中型设备。
CPU 416-2, CPU 416-3, CPU 416-3 PN/DP:
满足性能要求。
CPU 417-4 DP:
满足zui的性能要求。
CPU 412-3H, CPU 414-4H 和 CPU 417-4H:
用于 SIMATIC S7-400H 和 S7-400F/FH
CPU 416F-2 和 CPU 416F-3 PN/DP:
用于建立故障安全自动化系统,满足日益增长的安全需要。
LED指示灯:
用于状态和故障指示。
波动开关:
用于选择运行模式。
存储器卡插槽(扩展装载存储器)
组合 MPI/DP 端口。
内置 PROFIBUS-DP 接口(非 CPU 412-1)。
电池插座:
用于后备电池的外部供电。
PROFIBUS DP 接口:
用于连接分布式 I/O。根据组态的不同,也可用于与 OP 或 PG/PC 的通讯。
PROFIBUS DP 接口模板备用插槽:
用于链接其他 DP 网络。
产品推荐