- 发布
- 浔之漫智控技术(上海)有限公司
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 电话
- 15821971992
- 手机
- 15821971992
- 发布时间
- 2023-07-19 17:06:40
在西门子PLC软件中引号的使用
在3.1版西门子PLC编程软件之前,全局符号名称必须放在双引号内。双引号已不再用于符号名。自4.0版起,双引号用于在符号表中起始和结束作为持档SCII常量字符串。此赋值创建了一个符号ASCII字符串常量。与此相似,单引号用于起始和结束ASCII字符常量(只限字节、字、双字)以创建一个符号ASCII字符常量。
西门子PLC如何插入附加行?
使用下列方法之一在符号表/全局变量表中插入附加行:
· 选择菜单命令编辑(Edit)> 插入(Insert)> 行(Row)。将在符号表/全局变量表光标的当前位置上方插入新行。
· 用鼠标右键单击符号表/全局变量表中的一个单元格。选择弹出菜单命令插入(Insert)>
行(Row)。将在光标的当前位置上方插入新行。
· 欲在符号表底部插入新行,将光标放在西门子plc编程软件界面后一行的任意一个单元格中,按“下箭头”键。使用定义、编辑或选择符号命令定义、编辑或选择符号等命令,允许您在使用程序编辑器或状态图时,定义新符号、从列表上选取现有符号、或编辑符号属性。新的或修改后的赋值将被自动加入到符号表内。
一、引言
在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用语言开发一个简易实用的通信程序。微软公司推出的Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API函数,另一种是用VB支持的通信控件MSCOMM.OCX。利用Windows API函数是通过调用读写等函数来操作串口。两种比较,使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。这里采用了MSCOMM.OCX控件。
本文根据杭州某包装材料公司原料配料控制系统为背景,简述实现计算机与三菱FX系列PLC通信的实现过程。
二、硬件与选型
日本三菱公司是国际的工厂自动化设备制造商,工业可编程控制器在占有率一直保持前列。项目选用三菱FX2N-64MR型PLC,SC-09电缆作为计算机与PLC通信的连线。连接电缆的9针端连接在计算机串口上,另一端连接在PLC的RS-422编程口。系统框图如图一所示:
计算机 三菱 PLC
图一
三、软件编程
软件设计主要包括PLC梯形图设计和计算机VB程序、数据库设计。计算机操作系统为Windows98,编程语言用Visual Basic 6.0,数据库选用Access97,梯形图程序在三菱PLC编程软件GPPWIN 软件环境设计。上位机软件实现计算机对PLC内部数据读取、写入参数和保存数据到数据库。
三菱FX2N型PLC编程口通信协议如下:
命令 | 命令字 | 控制元件 | 备注 |
读元件 | 0 | X,Y,M,S,T,C,D | 读字/位元件状态 |
写元件 | 1 | 写字/位元件状态 | |
置位 | 7 | X,Y,M,S,T,C | 位元件置位 |
复位 | 8 | 位元件复位 |
通信格式:
起始符 | 命令字 | 首地址 | 数据区 | 结束符 | 和校验 |
波特率9600,偶校验,8位数据位,一位停止位。
在新建工程的表单上添加MSCOMM.OCX控件,初始化程序:
Private Sub Form_Load()
MSComm1.CommPort = 1 '选择COM1口
MSComm1.Settings = "9600,e,7,1"
End Sub
系统参数主画面如下图所示:
图二
数据读取子程序:
Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String
MSComm1.InputLen = GetBytes * 2 + 4
MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)
‘传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码
GetData = MSComm1.Input
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
End Function
如需读取数据,通过调用GetData子程序。
参数设置程序可参考读取子程序,只是改变命令而已。
Access97数据库中包含三个表单,包括参数表、记录表、报警记录表。
通过如下子程序是将实际称量值(记录表)更新到数据库:
Private Sub SaveData()
Dim i As Integer
Dim valid As Boolean
On Error Resume Next
valid = True
Data1.Recordset.AddNew
Data1.Recordset.Fields("dtime") = TimeSerial(OnHour, OnMinute, OnSecond)
Data1.Recordset.Fields("systime") = Time ‘系统时间
Data1.Recordset.Fields("get_xl") = LF(1) ‘小料当前称量值
Data1.Recordset.Fields("get_fjs") = LF(2) ‘方解石当前称量值
Data1.Recordset.Fields("get_cs") = LF(3) ‘长石当前称量值
Data1.Recordset.Fields("get_sys") = LF(4) ‘石英砂当前称量值
Data1.Recordset.Fields("get_cj") = LF(5) ‘纯碱当前称量值
Data1.Recordset.Update ‘更新数据库记录
Data1.Recordset.MovePrevious
End Sub
程序中,LF(i)变量对应为图二系统参数表单中实称值。
保存参数子程序只是对数据库操作,程序结构可参考以上子程序。
上位机与PLC通信质量的好坏,对系统的安全可靠运行影响极大,因此,编写程序时,除了在两者之间的通信协议上保持一致和采取相应的容错技术外,还要考虑系统的整体容错技术,防止系统的不正常。
四、结束语
串行通信是目前计算机与其他设备之间通信广泛采用的方式之一,传送数据准确,程序稳定运行是系统开发的主要目的。本设计中充分利用计算机和PLC的资源,在几乎不增加设备开支的情况下成功的实现上位机与PLC之间的通信。
统一的 40 针前连接器,适用于 SIMATIC S7-1500 I/O 模块
适用于宽度为 25 mm 或 35 mm 的模块
带螺钉型端子或推入式端子
可连接的芯线截面积0.25 mm2 至 1.5 mm2(AWG 24 至 16)
用于 35 mm 模块的前连接器需单独订购;
模块供货范围内包括 25 mm 模块的前连接器
40 个端子,分为两排排列,从 1 到 40 顺序编号
端子直接分配给 LED 和标签,简化了接线、调试和故障排除
具有用于四个电压桥接件的支架,可方便而灵活地形成电压组;
四个单元提供有前连接器(可作为备件提供,每包 20 个)
集成式屏蔽设计,适用于模拟量模块和工艺模块;
安装节省空间,无需使用工具,可确保很高的坚固性和 EMC 稳定性;
随模拟量模块提供的部件
用于对电缆束进行机械固定并消除电缆接头应力的电缆扣;
随前连接器提供 1 件