全国服务热线 15221406036

西门子模块6ES7235-0KD22-0XA8详细使用

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

西门子模块6ES7235-0KD22-0XA8详细使用

PLC软件应用层:开关量是0、1开关节点以二进制形式存放在PLC内部寄存器中,模拟量是工程量(如255、32767、65535)以16进制形存放在PLC用户寄存器中。
内部处理层:全部都是从寄存器中调出采取二进制运算。
开关量模拟量转换在PLC软件应用层只要利用相关指令(如三菱K1M0等)将开关量二进制转换成16进制存放在PLC用户寄存器就可以。
开关量和模拟量的转换一般都经过保持以及数字化的,比如开关量,有干扰吧,要排除这种干扰,可以软件排除干扰,比如隔几毫秒读取一次开关状态,两次都读到才认为开关关闭了,不然认为是干扰,当然干扰也可以用硬件排除干扰,如果施密特触发器等。
对于模拟量,也是经过量化的,比如0809AD转换,对于转换方法,在这里也说不清楚,可以查询芯片资料,0809芯片有控制转换引脚,使能引脚,转换地址等控制引脚,用8051单片机可以控制其转换,当然,还有的单片机,如MSP430,AVR等单片机,更好的转换芯片,如DSP的STM32系列芯片,是专门的数模转换芯片。转换的原理是根据转换芯片的精度划分转换量,如,转换芯片的位数为8位,再假定转换的模拟量为5伏电压,那么还可以把5伏分为256(因为8位芯片只能是2的8次方)等分,这样就可以算出它的数字量了,反之亦然。
常见的模拟量信号有电压和电流信号,有输入信号对设备进行控制的,比如变频器的调速、气压比例阀等,输出信号多见与各种传感器和其他输出设备。它们之间的转换关系需要参考AD、DA模块与设备量程来确定。
DA模块
它的数字量与模拟信号电压之间的关系如下图:
PLC控制系统
模块端4000量程的数字量对应10V电压信号,按照此关系进行转换。而在设备端变频器频率与模拟量之间的关系为:50.00Hz对应于10v电压信号输入,那么在plc编程中频率与数字量转换的关系就是1数字量=1.25Hz或者1Hz=0.8数字量,加入我们要控制变频器30.00Hz运转,就要向DA模块中写入2400数字量。
AD模块
在模块端10v模拟量对应4000数字量,按照此关系完成转换。在设施端例如位置传感器距离与模拟量电压信号之间的关系是:200mm量程对应10v模拟量输出,那里在PLC程序要得到准确的位置,位置与数字量之间的关系就是1mm=20数字量或者1数字量=0.05mm,加入我们检测了2000的数字量,经过换算就知道位置是100mm。
 
至于开关量与模拟量之间的转换关系,应该说是模拟量怎么控制开关量,比如说电机转速超过某值就要关掉电机、温度大于多少就要终止加热或小于多少要加热,此刻我们经过AD模块监控这些数据,在PLC中进行比较,根据比较结果来输出相应的开关动作西门子电源6EP1332-1LB00

无任何焊缝,符合 IEC 60947-5-1。

回路图

监控按钮头

监控电磁线圈

慢动触点,1常开 + 2常闭

慢动触点,1常开 + 2常闭



工作行程


慢动触点,1常开 + 2常闭






PLC现场硬件模块的组态和软件调试

对于各种PLC的现场硬件组态和软件调试,通常有经验的工程师应该先花一些时间对自己的现场工作进行一个简单的规划,通常应当采取如下的步骤:

(1) 系统的规划

序,根据所归纳之结论来拟定系统规划,决定所采行的PLC系统架构、所需之I/O点数与I/O模块型式。

(2) I/O模块选择与地址设定

当I/O模块选妥后,依据所规划之I/O点使用情形,由PLC的CPU系统自动设定I/O地址,或由使用者自定I/O模块的地址。

(3) 梯形图程序的编写与系统配线

在确定好实际的I/O地址之后,依据系统需求的功能,开始着手梯形图程序的编写。同时,I/O之地址已设定妥当,故系统之配线亦可着手进行。

(4) 梯形图程序的仿真与修改

在梯形图程序撰写完成后,将程序写入PLC,便可先行在PC与OpenPLC系统做在线连接,以执行在线仿真作业。倘若程序执行功能有误,则必须进行除错,并修改梯形图程序。

(5) 系统试车与实际运转

在线上程序仿真作业下,若梯形图程序执行功能正确无误,且系统配线亦完成后,便可使系统纳入实际运转,项目计划亦告完成。

(6)程序注释和归档

为确保日后维修的便利,要将试车无误可供实际运转的梯形图程序做批注,并加以整理归档,方能缩短日后维修与查阅程序之时间。这是职业工程师的良好习惯,无论对今后自己进行维护,或者移交用户,这都会带来极大的便利,而且是你的职业水准的一个体现。

以上工作中,复杂的系统规划可能需要几天甚至更长的时间,但一个简单的系统规划在一个具有良好的职业习惯的编程工程师手中,可能只需要几个小时。

这里要强调一个问题,是十分简单但却几乎每个项目都会发生的,那就是对PLC的接线。这往往是经验不足的工程师常常忽略的一个问题。其实,现场调试大部分的问题和工作量都是在接线方面。有经验的工程师首先应当检查现场的接线。通常,如果现场接线是由用户或者其它的施工人员完成的,则通过看其接线图和接线的外观,就可以对接线的质量有个大致的判断。然后要对所有的接线进行一次完整而认真的检查。现场由于接线错误而导致PLC被烧坏的情况屡次发生,在进行真正的调试之前,一定要认真地检查。即便接线不是你的工作,检查接线也是你的义务和责任,而且,可以省去你后面大量的时间。

在实际应用中,客户对于WinCC变量记录的显示需求各式各样,比如在Excel或者Word中显示变量记录,以特定的表格显示历史数据等等。当WinCC集成的在线表格控件不能满足客户需要时,就需要通过自定义的方式来显示变量归档。主要分为两部分:
(1)从WinCC中读取归档数据
(2)将归档数据以特定的格式显示出来
        本文档介绍从WinCC读取归档数据的通用方法,并以ListView为例,介绍如何显示归档数据。对于其它控件,客户也可以参考本文档的脚本和编程思路。

1.测试环境
        本文档基于WinCC V7.0 ASIA,并通过MS Windows Common Controls 6.0 ListView 控件来显示读取的归档数据。需要的授权如下:

授权名称个数备注WinCC RC V7.01
WinCC连通性软件包V7.01订货号为:6AV6371-1DR07-0AX0,授权通过WinCC OLE DB访问过程值归档。

表 01

2.实现方式总体思路介绍
        本文档通过调用WinCC OLE DB数据库接口驱动(需要WinCC连通性软件包的授权)来访问WinCC的变量归档,并在微软的ListView控件中显示归档数据。程序结构如下所示:


图1

其中,自定义函数的说明如下表所示:

函数名称功能WinCCDataSourceAccess(connObj, pSQL)建立到数据库的连接。参数connObj为连接对象(ADODB.Connection),参数pSQL为要执行的SQL查询语句WinCCDataSourceClose(pRecordset, connObj)断开与数据库的连接,释放资源。参数pRecordset为ADODO.RecordSet对象,参数connObj为连接对象(ADODB.Connection)AddListViewHeaderColumn(pRecordset, pListView)添加ListView的列名。参数pRecordset为ADODO.RecordSet对象,参数pListView为ListView对象FillListView (pRecordset, pListView)参数pRecordset为ADODO.RecordSet对象,参数pListView为ListView对象。

表 02

具体代码见附件。

3.具体实现方法和代码

3.1 创建到归档数据库的连接

        由于WinCC的变量归档为压缩数据,所以必须通过WinCC OLE DB来读取归档数据。对于已经安装WinCC的计算机,不需要安装WinCC连通性软件包。对于未安装WinCC的客户端,必须安装WinCC连通性软件包。该软件包含在WinCC V7.0的安装光盘中。
        数据库连接的脚本如下所示:
'定义数据库连接变量
Dim conn

Set conn = CreateObject("ADODB.Connection")

'定义数据库查询脚本(可以根据需要自定义修改)
Dim sSQL

sSQL="Tag:R,'ProcessValueArchive\Tag1','0000-00-00 00:01:00.000','0000-00-00 00:00:00.000'"

'通过调用自定义的数据库连接函数,建立与数据库的连接
Dim oRs

Set oRs= WinCCDataSourceAccess(conn,sSQL)

         其中,自定义的数据库连接函数WinCCDataSourceAccess(connObj,pSQL),参数connObj为连接对象(ADODB.Connection),参数pSQL为要执行的SQL查询语句,具体代码如下所示:
Function WinCCDataSourceAccess(connObj,pSQL)
'建立到数据库的连接
On Error Resume Next
'读取本地的WinCC运行数据库名称
Dim DatasourceNameRT,DataConnectionName
Set DatasourceNameRT = hmiRuntime.Tags("@DatasourceNameRT")
DatasourceNameRT.Read

'定义数据库连接字符串
Dim sPro, sDsn,sSer

sPro = "Provider=WinCCOLEDBProvider.1;"

sDsn = "Catalog=" & DatasourceNameRT.Value & ";"

sSer = "Data Source=.\WinCC"

DataConnectionName = sPro + sDsn + sSer
' 定义查询语句字符串
Dim sSQL
sSQL=pSQL

'建立连接
Dim oRs,oCom,conn
Set conn = CreateObject("ADODB.Connection")
Set conn=connObj
conn.ConnectionString = DataConnectionName
conn.CursorLocation = 3
conn.Open
' 创建查询的命令文本
Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("ADODB.Command")

oCom.CommandType = 1

Set oCom.ActiveConnection = conn

oCom.CommandText=sSQL
'执行查询
Set oRs = oCom.Execute

'返回结果
Set WinCCDataSourceAccess=oRs

If err.number <> 0 Then

MsgBox "error Code" & Err.Number & "Source:" & Err.Source & "error description" & Err.Description
err.clear

End If

On Error Go to 0

End Function

         自定义函数的创建过程为:在WinCC项目管理器中右键点击全局脚本打开VBS全局脚本编辑器项目函数新建函数。具体如下图所示:


图2
3.2 注册Microsoft ListView Control 6.0控件

        打开WinCC图形编辑器。在右侧的对象选项板中单击“控件”,选中“ActiveX Control”,点击右键,选择“添加移除”。在弹出菜单中,选择“Microsoft ListView Control 6.0”,点击“OK”确认。


图3

        之后,将“Microsoft ListView Control 6.0”拖动到画面编辑器中,并将对象名称设置为Control1。
注意:在脚本中,当定义ListView对象时用到对象名称Control1。详情请参考图1的步骤2。

3.3 添加ListView 控件的列名
        在ListView中添加列名,步骤如图1的步骤3。自定义函数AddListViewHeaderColumn(pRecordset, pListView)的具体代码如下所示:
Function AddColumnHeader(pRecordset, pListView)
'添加ListView列名

'用于错误捕获和处理
On Error Resume Next

Dim oRs,columnCount

Set oRs=CreateObject("ADODB.Recordset")

Set oRs=pRecordset

'获取数据库中的列数
columnCount=oRs.Fields.Count

'定义操作的ListView对象
Dim ListViewT

Set ListViewT=pListView
'清空ListView对象的列数
ListViewT.ColumnHeaders.Clear

'用查询的数据库表格列名来为ListView添加列名(*2)
Dim AddColumnIndex

For AddColumnIndex=0 To columnCount-1

ListViewT.ColumnHeaders.Add , , CStr(oRs.Fields(AddColumnIndex).Name)

Next
'发生错误,提示消息框
If err.number <> 0 Then

MsgBox "AddColumnHeader函数报错,Source:" & Err.Source & vbCr & "Error description:" & Err.Description

err.clear

End If

On Error Goto 0

End Function

3.4 填充ListView 控件
        在ListView中添加列名,步骤如图1的步骤4。自定义函数FillListView (pRecordset, pListView) 的具体代码如下所示:
Function FillListView(pRecordset,pListView)
'用数据库查询的值填充ListView
On Error Resume Next

'获取查询记录条数
Dim recordsCount,oRs
Set oRs=CreateObject("ADODB.Recordset")
Set oRs=pRecordset
recordsCount=oRs.RecordCount

'定位到条记录
If (recordsCount > 0) Then
oRs.MoveFirst

'定义大的查询条目(*3)
Dim maxLine,n

maxLine = 10
n=0
'填充数据值列
Do While (Not oRs.EOF And n < maxLine)

n = n + 1

Dim oItem,ListViewT
Set ListViewT=pListView
Set oItem = ListViewT.ListItems.Add()

oItem.text = oRs.Fields(0).Value

oItem.SubItems(1) = oRs.Fields(1).Value

oItem.SubItems(2) = FormatNumber(oRs.Fields(2).Value, 4)

oItem.SubItems(3) = Hex(oRs.Fields(3).Value)

oItem.SubItems(4) = Hex(oRs.Fields(4).Value)

oRs.MoveNext

Loop

3.5 关闭到归档数据库的连接
         关闭与数据库的连接并释放资源,步骤如图1的步骤5。自定义函数WinCCDataSourceClose(pRecordset, connObj)的具体代码如下图所示:
Function WinCCDataSourceClose(pRecordset,connObj)
'关闭数据库连接,释放资源
'获取连接和查询对象
Dim oRs,conn

Set oRs=pRecordset
Set conn=connObj

oRs.Close

Set oRs = Nothing

conn.Close

Set conn = Nothing

End Function

3.6 运行结果
        本文档介绍的脚本,其运行结果如下图所示:


图4
3.7 更改代码以满足更广泛的需求
        对于不同客户的定制化需求,可以通过修改少量代码实现。
     (1) 不同的查询需求,修改sSQL变量的值。
'修改变量sSQL的值
Dim sSQL

比如,如果需要动态制定查询时间,可以在画面中输入查询日期,然后通过HMIRuntime.Tags(“变量名”)来获得查询条件,再赋值给sSQL。
      (2) ListView需要使用不同的列名。
修改函数AddListViewHeaderColumn中的如下内容:
‘用查询的数据库表格列名来为ListView添加列名 (*2)
Dim AddColumnIndex

For AddColumnIndex=0 To columnCount-1

Next

      (3) ListView需要填充不一样的行数和内容。
修改函数FillListView中的如下内容:
Dim maxLine,n

maxLine = 10 '改变此值,可以更改大显示的条目数
n=0
'修改填充内容,请修改下面Do While循环中的代码
Do While (Not oRs.EOF And n < maxLine)

n = n + 1

oItem.text = oRs.Fields(0).Value

oItem.SubItems(1) = oRs.Fields(1).Value

oItem.SubItems(3) = Hex(oRs.Fields(3).Value)

oItem.SubItems(4) = Hex(oRs.Fields(4).Value)

oRs.MoveNext

Loop

        本文档中提供的脚本尽量通用化,方便客户修改和复用。并加入了错误处理机制,保证脚本的正确运行,并提高了诊断的方便性。


没有

联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com