晋城西门子PLC模块代理商
晋城西门子PLC模块代理商
1、前言
西门子S7-200系列可编程控制器(PLC)是控制领域应用广的小型PLC之一,它支持两种与计算机通信方式:自由端口,PPI方式使用自由口方式进行编程时,必须定义自己的通讯协议,在上位机和PLC中都要编写数据通信程序,占用PLC的内存。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。但是西门子公司没有公布PPI协议的格式。用户如果想使用PPI协议,必须购买西门子的协议模块或其它厂家的组态软件。只对于一些小型系统来说成本比较高,若只应用几个数据,就购买一套软件,实在是浪费。利用S7-200内置的PPI协议,开发自己的控制或采集系统不愧是一个捷径。
2、部分PPI协议格式
SD:(Start Delimiter)开始定界符(68H)
LE:(Length)报文数据长度
LER:(Repeated Length)重复报文数据长度(从DA到DU)
SD: (Start Delimiter)开始定界符(68H)
SA:(Source Address)数据源站地址
DA:(Destination Address)数据目标站地址
FC:(Function Code)功能码
DSAP:(Destination Service Access Point)目的服务存取点
SSAP:(Source Service Access Point)源服务存取点
DU:(Data Unit)数据单元
FCS:校验码(从DA到DU数据和)
ED:(End Code)结束码(16H)
3、通讯过程
从计算机上的COM口通过一条PC/PPI编程电缆连到PLC的编程口上(小的系统要求),计算机(为主,地址为00)与PLC(为从,地址为02)采用主从方式通讯,具体过程如下图所示,一次读写操作的步骤包括:(1)首先主机(计算机)发出读写命令,(2)从机(PLC)作出接收正确的响应(E5),(3)主机接到此响应则发出确认指令(10 02 00 5C 5E 16),(4)PLC回应给上位机数据。这样收发两次数据,完成一次数据的读写。
4、读写指令实例
4.1读指令实例
对于一次读取一个数据,读命令都是33个字节。前面的0—21字节是相同的,SA=00,DA=02(PLC缺省地址),如果有多个站,DA要改成相应的站号。读命令中从DA到DU的长度为1B即27个字节。从22字节开始根据读取数据的类型、位置不同而不同。 下表是读不同存储器命令的Byte22—32。
读命令的Byte22-32
实际输出指令:读VB100,Byte28-30 为100*8=&H0320
68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0 1 0 1 84 0 3 20 8B 16
4.2 写指令实例:
一次写一个类型的数据V100,写V区地址 Byte28-30 为100*8=&H0320
写VB100(16):
68 20 20 68 2 0 6C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 10 B9 16
写VW100(16):
68 21 21 68 2 0 6C 32 1 0 0 0 0 0 E 0 6 5 1 12 A 10 4 0 1 0 1 84 0 3 20 0 4 0 10 0 10 B9 16
写VD100(16):
68 23 23 68 2 0 6C 32 1 0 0 0 0 0 E 0 8 5 1 12 A 10 6 0 1 0 1 84 0 3 20 0 4 0 20 0 0 0 10 B9 16
Byte 22-- Byte 30 写入数据的长度、存储器类型、存储器偏移量与读命令相同。Byte 35-38 写入数据的位数。
5、应用实例
在钢管制造行业,水压静载试验机(简称水压机)是必备的检验和试验设备。因为美国石油协会的API标准《管线钢管 Spec 5L》和国家标准GB/T9711-1997规定,螺旋焊管和直缝焊管必须经过规定的静水压试验,并且保存水压过程的压力曲线。该系统原来是用MCGS工控组态软件+VB程序来完成的,采集速度较慢,多一秒钟采集一个,比较缓慢。现用VB语言,通过PPI协议直接采集PLC的水压值进行处理,简洁又迅速,怀可以开发出多种功能。采用PPI电缆将计算机COM1口与PLC的PORT0编程口连接,通讯系统采用主从结构,通讯协议遵循PPI协议格式,计算机发出读写申请,PLC返回相应的数据。程序实现如下
5.1 初始化程序
Private Sub bbbb_Load()
With MSComm1
.CommPort = 1
.Settings = "9600,e,8,1" ‘波特率9600,偶校验,8数据位,1停止位
.bbbbbLen = 0
.RThreshold = 1 ‘收到字符就产生事件
.bbbbbMode = combbbbbModeBinary ‘二进制接收模式
End With
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True ‘打开通讯串口
End If
[NextPage]
End Sub
Private Sub bbbb_Unload(Cancel As Integer)
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False ‘关闭通讯串口
End If
End Sub
5.2 读VW函数
Function ppird(readaddress As bbbbbb) ‘读VW的地址,例如:1000
Dim i As Integer, temp As Integer
Dim sendbyte(32) As Byte
sendbyte(0) = &H68
sendbyte(1) = &H1B
sendbyte(2) = &H1B
sendbyte(3) = &H68
sendbyte(4) = &H2
sendbyte(5) = &H0
sendbyte(6) = &H6C
sendbyte(7) = &H32
sendbyte(8) = &H1
sendbyte(9) = &H0
sendbyte(10) = &H0
sendbyte(11) = &H0
sendbyte(12) = &H0
sendbyte(13) = &H0
sendbyte(14) = &HE
sendbyte(15) = &H0
sendbyte(16) = &H0
sendbyte(17) = &H4
sendbyte(18) = &H1
sendbyte(19) = &H12
sendbyte(20) = &HA
sendbyte(21) = &H10
sendbyte(22) = &H4
sendbyte(23) = &H0
sendbyte(24) = &H1
sendbyte(25) = &H0
sendbyte(26) = &H1
sendbyte(27) = &H84
sendbyte(28) = &H0
sendbyte(29) = (readaddress * 8) \ 256 ‘计算读高位地址
sendbyte(30) = (readaddress * 8) Mod 256 ‘计算读低位地址
sendbyte(31) = &H0
sendbyte(32) = &H16
For i = 4 To 30
temp = temp + sendbyte(i)
Next
sendbyte(31) = temp Mod 256 ‘计算校验码
[NextPage]
ppird = sendbyte ‘‘返回读VW 指令码
End Function
5.3 写VW函数
Function ppiww(adressx As Integer, datax As Integer)
‘adressx 为写VW的地址datax 要写入VW的整数
Dim i As Integer, temp As Integer
Dim sendbyte(38) As Byte
sendbyte(0) = &H68
sendbyte(1) = &H21
sendbyte(2) = &H21
sendbyte(3) = &H68
sendbyte(4) = &H2
sendbyte(5) = &H0
sendbyte(6) = &H6C
sendbyte(7) = &H32
sendbyte(8) = &H1
sendbyte(9) = &H0
sendbyte(10) = &H0
sendbyte(11) = &H0
sendbyte(12) = &H0
sendbyte(13) = &H0
sendbyte(14) = &HE
sendbyte(15) = &H0
sendbyte(16) = &H6
sendbyte(17) = &H5
sendbyte(18) = &H1
sendbyte(19) = &H12
sendbyte(20) = &HA
sendbyte(21) = &H10
sendbyte(22) = &H4
sendbyte(23) = &H0
sendbyte(24) = &H1
sendbyte(25) = &H0
sendbyte(26) = &H1
sendbyte(27) = &H84
sendbyte(28) = &H0
sendbyte(29) = (adressx * 8) \ 256
sendbyte(30) = (adressx * 8) Mod 256
sendbyte(31) = &H0
sendbyte(32) = &H4
sendbyte(33) = &H0
sendbyte(34) = &H10
sendbyte(35) = datax \ 256
sendbyte(36) = datax Mod 256
sendbyte(37) = &H0
sendbyte(38) = &H16
For i = 4 To 36
temp = temp + sendbyte(i)
Next
sendbyte(37) = temp Mod 256
ppiww = sendbyte ‘返回写VW 指令码
End Function
[NextPage]
5.4 利用MSCOMM的事件获取数据
Private Sub MSComm1_OnComm()
Dim rcvtemp(5) As Byte ‘定义确认发送的数组数据元素为字节
Dim rcv_array() As Byte
Dim yy As Long
Select Case MSComm1.CommEvent
Case comEvReceive
rcv_array = MSComm1.bbbbb ‘取出串口接收缓冲器的数据。
If rcv_array(0) = &HE5 Then
SComm1.RThreshold =25
rcvtemp(0) = &H10
rcvtemp(1) = &H2
rcvtemp(2) = &H0
rcvtemp(3) = &H5C
rcvtemp(4) = &H5E
rcvtemp(5) = &H16
MSComm1.Output = rcvtemp ‘发送确认指令码
ElseIF rcv_array(0) = &H68 AND rcv_array(1) = &H17 THEN
yy = Val(rcv_array(25)) * 256 + Val(rcv_array(26)) ‘计算读取数据
Text1 = yy
ELSE
MSComm1.RThreshold = 1
End If
End Select
watchtimer.Enabled = False
End Sub
5.5 主程序
程序已开始,首先写入PLC必要的实验数据:试验压力值、钢管的直径、保压时间等数据,开始试验,启动一计时器,每隔100毫秒读一次油压值和水压值,同时识别出压力值并用曲线显示出来,完成一次水压试验,保存一次水压曲线数据,以备日后察看。在日常应用中相当可靠便捷。
6、结束语
利用PPI协议还可以读写S7-200PLC中的各种类型数据,包括I、Q、SM、M、V、等数据类型,能够直接读出以上变量中的位、字节、字、双字等,其中读位变量时,是读取该位所在的字节值,计算机再识别出该位的值,一次还可以读些多个数据,具体的指令码可以模拟以上的指令码写出。PPI协议还具有丰富多彩的功能,若要全面是用PPI协议请使用西门子的授权软件。
概述
该机器用于纺织印染,客户希望使用基于PC的自动化解决方案。系统包括许多测量设备和分布式单元采用RK512通讯协议进行通讯。该协议可直接与SIMATIC S5通讯,但对于SIMATIC WinAC需要开发。科隆的技术中心专门编写了用于WinAC与这些设备间通讯的程序。
项目简介
WinAC与现场设备采用RK512协议进行通讯。
Siemens PCbA解决方案
WinAC插槽型412+RK512-S7功能块+ET200S 1SI(串口)
优点
·可保留原有系统结构和设备,特别是专用设备
·分布式I/O模块,串口通讯模块均为SIMATIC标准模块
·节约成本
系统结构
结论
·采用基于PC的解决方案完全满足用户的需求
·系统调试简便快速
·RK512 1SI 协议可适用于所有 SIMATIC 系统
上海某污水厂是上海市人民政府为了改善和治理黄浦江上游水质,满足某地区15万居民生活,提高工业污水处理能力而进行的一个改扩建项目,它属于上海市环境治理重点工程的一部分。该工程除对原某污水处理厂进行改扩建外还包括12平方公里管网及3个泵站的建设,管网总长度达26公里。工程竣工后将达到日处理6.8万立方米污水的能力。西门子工业自动化有限公司(SIAS)通过其强大的技术竞争力和能力,总承了其中的自动化控制系统。
自动化系统方案
根据工艺上工作区的划分,系统控制划分了五个站,其中四个站相对于进水泵站、鼓风机房站、污泥区站、离心机房站,另外在加上一个中央监控站。
在控制方案中采用了SIEMENS SIMATIC S7-300 PLC + PROFIBUS + PC的结构, 共有5个PLC 控制器 、6个上位PC监控站,具体分配是: 进水泵站 (INLET STATION): S7-300 PLC× 1 + PC× 1
鼓风机站(BLOWERS STATION): S7-300 PLC× 1 + PC× 1
污泥站(SLUDGE STATION): S7-300 PLC× 1 + PC× 1
离心机站(CENTRIFUGE): S7-300 PLC× 1 + PC× 1
中控站(CENTRIAL CONTROL): PC× 2
模拟屏(MIMIC PENAL): S7-300 PLC× 1
在本系统中每个就地操作站都配有一台上位监控机,这台上位机不仅能操作本地站,在一定的授权下还能对其他站进行监视和控制。中控室配有二台上位监控机,他们能同时控制所有四个就地控制站,向其发送命令。这六个上位监控机之间的关系是互为功能备用的,这就是说这六个监控站中只要有一个发生故障,另外的五个监控站通过一定的授权就能代替该站的工作。系统中所有设备的电源均由UPS提供,每个仪表的电源都由开关型端子控制,能独立开关。保证了系统安全性,和调试的方便性。
系统采用的是SIEMENS的PROFIBUS网络。PROFIBUS是当今欧洲开放型现场总线的标准,他共有三种方式:PFIBUS-FMS, ROFIBUS -DP, PROFIBUS-PA。
工艺流程
[NextPage]
控制方案
杭州市某污水处理厂工程控制系统由中央控制室的上位计算机管理控制系统、厂区三个现场控制站组成。系统网络结构见下图:
中央控制室和厂区三个现场控制站之间以一个冗余的100Mbps光纤工业以太网环网组成一个有线数据通信网络系统。现场控制站在现场进行工艺检测参数、设备运行工况信号的采集、检测和控制,并通过该站的人机界面对设备运行操作,同时向中央控制室进行实时传送。中央控制室可监视各现场站的全部运行信息,在中央控制室可通过上位计算机控制现场设备的启动和停止。
现场控制站在与设备自带的PLC通讯时,采用Profibus_FMS的方式,其通讯介质为屏蔽双绞线,其通讯速率大可达1.5Mbit/s。
10KV及各变电所的相关信号,通过智能继电保护装置及智能空气断路器、用PROFIBUS-DP的通讯方式与现场控制站交换数据,每个间隔保护及测量装置均作为现场控制站的从站。
现场控制站采用西门子S7 400 PLC,CPU采用4163DPCPU,具有运算速度快,资源丰富等优点。
计算机监控软件采用西门子WINCC,它具有画面显示、趋势曲线、报警处理、报表处理、数据管理、网上浏览等功能。
整个自控系统体现了西门子全厂一体化的先进自控理念,并且网络结构完全符合现场总线的