西门子6ES7222-1EF22-0XA0介绍说明
随着计算机和通讯技术的发展,在工业测量和控制中广泛需要远程通讯。远端PLC等下位机做生产控制,本地计算机需要实时监测或参与控制生产现场的参数。实现以上要求的一个简便的途径是利用覆盖面广泛的公用电话网,使PLC等下位机利用调制解调器(MODEM)和计算机的调制解调器连接通讯,即可完成硬件上的连接。如图1所示。在软件方面,由远端下位机软件控制和远程监控站软件两部分组成。考虑到本地监控站软件只做数据监测或少许控制且编程相对简单,本地监控站的编程软件可以直接用语言。
2系统概述
本文以一个实际的小水电站的泻水闸门程控工程为例,着重叙述永宏PLC和PC做远程通讯的实现细节。系统的下位机控制采用永宏公司的FBs系列PLC对水库泻水闸门进行开度检测和开度控制,监控站的界面编程采用VB6.0编写。
硬件配置:远端FBs-CB25+ FBs-10MAU+ECOM外置MODEM+PWS1711
本地PC(含普通内置MODEM)
该系统主要控制要求,通过FBs-10MA外接一个旋转编码器检测闸门所在位置,跟据现场人机界面或者PC端(下游5Km处)的设定位置来控制牵引闸门的马达正反转,从而使闸门上升或下降到指定的位置。FBs-CB25所扩展得到的通讯口2(RS485)用于PWS1711的通讯,通讯口1(RS232)用于连接MODEM,主机上的可USB口用于连接调试用的笔记本电脑。
3调制解调器工作方式和设定
3.1 调制解调器工作原理
调制解调器分成两种模式,命令模式和联机模式。当调制解调器没有和其它设备连接时,其处于命令模式,这时下达给调制解调器的指令时作调制解调器本身设定或者动作用的。当调制解调器已经和其它的设备连接上时,此时调制解调就是处于联机模式,所有在此时由计算机送到调制解调器的讯息都将由经电话线传送到其它设备上。
用于控制调制解调器的特定指令集被称为“AT指令集”,通过该指令集,从基本的音量控制到内建参数设置的改变,都可以由VB经过串行端口而对调制解调器下达控制指令。AT命令集是调制解调器通讯接口的工业标准。所有的AT命令都以字符AT开始,作为前缀。前缀AT用以引起调制解调器的注意(Attention)检测计算机串行通讯口发送信号的速率,识别字符格式,包括字符长度和奇偶设定等。
调制解调器拨号之后,等待对方调制解调器送来的载波信号。如果在一给定时间内没有检测到载波, 调制解调器自动释放线路并送回结果码NOCARRIER,如果检测到载波信号, 调制解调器即送结果码CONNECT + 波特率,就进入联机状态,即可与远方系统进行通讯。
3.2 PLC连接调制解调器原理及其设置
在该系统中, PC做为主站,必须控制调制解调器主动拨号,在确认调制解调器和PLC的调制解调器联机成功后控制它进入联机模式,开始存取PLC数据。主站控制调制解调器拨号连接细节见下节,这里详述PLC端对调制解调器的设置方法。
PLC端PLC上电后必须初始化调制解调器,设置成自动应答来电状态。在这里把PLC初始化调制解调器的AT指令组合称为“MODEM驱动程序”。永宏PLC通过Port1来控制调制解调器,并把这种软件界面称为调制解调器专用界面。如图2设定或者设定特殊暂存器R4149的高八位为55H就可以把Port1设置为调制解调器专用界面,在该界面下PLC会启用“MODEM驱动程序”,此时,虽CPU仍然使用永宏〝标准通讯驱动程序〞来管理Port1的通讯,但必须通过调制解调器来联机,在通讯进行前,Por t1主控权是交由〝MODEM驱动程序〞管理,此时无法对PLC作任何存取动作。“MODEM驱动程序”即将调制解调器设为接收模式,并等待远方调制解调器拨号进来,一旦收发双方调制解调器联机成功,则PLC立即脱离接收模式,而进入联机状态,Port1控制权交由永宏〝标准通讯驱动程序〞管理。此时远方调制解调器便可任意存取或控制此PLC主机了。
调制解调器设置如图2所示,在PLC联机状态下,选取菜单中的“PLC”→“设定”→“Port1设定”来到图2,选择单选框的第二项“透过MODEM作远程CPU_bbbb”,该PLC一上电就通过自带的“MODEM驱动程序”把Port1设置为调制解调器专用界面。通讯格式设置为同调制解调器相同的N,8,1,为**通讯效率可以把通讯速率设置为38400bps,或者更高(高为115200bps)。
4 PC端程序设计
4.1 拨号程序设计
PC端将以VB6.0所带的通信控件MSCOMM进行通信软件的开发,利用该控件控制串口实现对MODEM的控制。控制步骤如下:
一.通信参数设置
设置串口端口号,波特率,数据位,停止位,奇偶校验位及设置硬件握手协议,向MODEM发出DTR(已准备好)信号一便接管MODEM,程序如下:
If MSComm1.PortOpen Then
MSComm1.DTREnable = True
Else
MSComm1.DTREnable = False
End If
二.对MODEM初始化
发出一些命令来设置参数,其中S0=n(n>=1)自动应答.n为响铃次数;E0/E1关闭/打开命令字符回应;Q0/Q1设置MODEM返回/不返回结果码;M0/M1关闭/打开MODEM扬声器;Ln(n>=0)设置MODEM扬声器音量www.plcs.cn;P/T设置MODEM脉冲/音频拨号;程序如下:
If MSComm1.PortOpen Then
Do While Not MSComm1.CTSHolding: Loop
TXD= ATS0=1E1Q0M1L2T + Chr(13)
MSComm1.Output = TXD
End If
三.进行拨号
向MODEM发出ATD命令,程序如下:
MSComm1.Output=ATD & 05925998499+Chr(13)
当发送“ATD”+ 电话号码 + Chr(13)时,MODEM就开始拨号,拨号需要一定的时间,在拨号的过程中可以不断读取MODEM的CD指示灯的状态,当电话拨通后CD指示灯会点亮。并返回“CONNECT + 波特率”的信息。如果MODEM向PC的回应字符串中含有Connect或CDHolding属性值变为True(检测出载波),则表示已与远方MODEM连机了,此时可以传输数据。
当电话拨通后,MODEM不再接收AT指令,要使其回到命令状态,则必须发送“+++”信息,使MODEM回到命令状态,发送“ATH”+ Chr(13)则可以挂断电话,程序如下:
MSComm1.Output=ATH +Chr(13)
4.2 通讯程序设计
一.永宏PLC通讯协议
永宏PLC 通讯讯息格式可概分为6个数据域位, 如下图3所示,具体解释如下:
⑴.开头字符(STX):ASCI I码之开始字符STX。
⑵.从站号码:为两位数之16进制数值。
⑶.命令号码:为两位数之16 进制数值,为由主系统要求从系统所执行之动作类别。
⑷.本文资料:本文数据可为0(无本文数据)~500个ASCII字符。
⑸.侦误值(CHECKSUM): 侦误值系将前述~将各ASCII字符之16进制数码值(8位长度)从头至尾依序相加,但不考虑进位,终结果为侦误值。
⑹.结尾字符(ETX):ASCI I码之结尾字符ETX之16进制数码为03H。。
二.读数写数
本系统操作PLC的关键数据主要是水位的设定值PV=R0和当前值CV=R1,即要对暂存器R0进行写操作,R1进行读操作;
依照协议VB设计的通讯程序必须指定一个命令码,向PLC请求数据读取,查的该命令码为“46”,解释为:连续多个缓存器之数据读取。读取R1的PC命令的ASCII码写法为:
“STX+ 01(站号)+46(命令码)+01(连续数据个数)+R00001(数据开始地址)+LRC(侦误值)+ETX”
依照协议VB设计的通讯程序必须指定一个命令码,对PLC缓存器数据写入,查的该命令码为“47”,解释为:连续多个缓存器之数据写入。写入R0的PC命令的ASCII码写法为:
“STX+ 01(站号)+47(命令码)+01(连续数据个数)+R00000(数据开始地址)+(写入的数据资料,16进制)+LRC(侦误值)+ETX”
读取当前值CV=R1,程序如下
Private Sub Timer1_Timer()
MSComm1.Output= Chr(2)+ “014601R00001”+ Lrc(“014601R00001”)+Chr(3)
Delay (10) //延时
CV = Val(&H + Mid(MSComm1.bbbbb, 7, 4)) //数据处理,R0放于CV
CV.Text = CV
End Sub
写入设定值PV=R0,程序如下
Private Sub Command1_Click()
If Len(Hex(PV.Text)) = 4 Then PV = Hex(PV.Text)
If Len(Hex(PV.Text)) = 3 Then PV = 0 + Hex(PV.Text
If Len(Hex(PV.Text)) = 2 Then PV = 00 + Hex(PV.Text)
If Len(Hex(PV.Text)) = 1 Then PV = 000 + Hex(PV.Text) //10进制转换16进制
MSComm1.Output=Chr(2)+ “014701R00000”+ PV + +Lrc(“014701R00000” & PV)+Chr(3)
End Sub
三.侦误值(CHECKSUM)计算
为VB的编程方便,把该计算做成单独一个子程序,依所有数据累加,舍弃进位的规则VB的LRC编程如下:
Private Function Lrc(Dats) As bbbbbb
Dim i
Dim Sum
Sum =2
For i = 1 To Len(Dats)
Sum = Sum + Asc(Mid(Dats, i, 1))
Next i
Lrc = Right(0 + Hex(Sum + 2), 2)
End Function
1引言
随着科技的发展,人工成本的**,各类传感器需求越来越大。位移传感器从生产过程到后产品测试都是非常重要的,在后的产品测试环节,需要构建一个完善的测试系统才能方便可靠的进行测试。在一个全方位的检测系统中,需要实现实时显示误差数据、误差范围内位移传感器测试的次数、报警并自动停止测试等功能。
台湾巨控PLC是一款体积小巧,功能强大的可编程控制器。它不仅具有数字量、模拟量输入,四轴脉冲控制,内置液晶文本显示器,并且是目前业界可直驱步进电机的控制器(直驱大电流1.75A)、4个通讯端口可提供强大的编程及通信功能,自主开发编程语言(FBD)具有丰富的数据运算和逻辑处理功能,简单易用。台湾巨控PLC在集中控制系统、分散式控制系统、远程数据采集系统中都有广泛的应用。
2项目分析
2.1客户需求
根据客户测试产品的规格要求,总阻抗变化在±5%内为合格。在进行位移传感器寿命测试过程中,一旦检测到总阻抗值超过±5%停止测试,并记录使用寿命次数。
2.2解决方案
此测试系统所测试的传感器类型有两种:直线式位移传感器、角位移传感器。传感器测试电路图1、2所示。
图1 直线位移传感器电路 图2 角传感器电路
在进行直线位移传感器测试时,根据传感器测试电路,可以在外部串联一个1KΩ电阻,那么正常电流为12V/6KΩ=2mA,则AI0满行程的电压为12V、AI1电压为2V。当在测试过程中滑变电阻器不断磨损,电阻会慢慢增大、总电流会随之减小,5KΩ×5%=250Ω,此时电流为12V/(1K+5K+250)Ω=1.92mA.此时滑变电阻器电压为10.08V,AI1为1.92V。巨控PLC模拟量输入为0-10V,对应内部数值为0-1000,一个刻度值对应10mV,可以接4路模拟量输入。AI1的电压从2V→1.92V,程序内部数值变化为200→192,则可以测量出何时电阻值达到5%的偏差,并且可以记录使用寿命次数是多少。测试过程中需要用到步进电机作为转动机构,达到某一范围时需要反转,从而达到反复测试效果。测试过程流程图如图3所示。
图3 测试过程流程图
3硬件设计
3.1硬件配置
(1)巨控PLC A-5189-T(主站)
(2)巨控I/O扩展模块A-1055
(3)巨控文本显示器ATP2
(4)步进电机
(5)位移传感器
硬件配置连接示意图如4所示。
图4 PLC与扩展I/O、ATP2文本显示器连接图
步进电机与PLC连接如图5所示。
图5 步进电机接线图
巨控PLC A-5189-T模拟量输入点、通信端口、电源如图6所示。 扩展I/O模块A-1055输出点接线图如图7所示。
图6 A-5189-T模拟量输入点、通信端口、电源
图7 扩展I/O模块A-1055输出点接线图
3.2巨控PLC
测试系统中所用到的型号是A-5189-T,此型号PLC有4路模拟量输入、4路数字量输入、4路晶体管输出(每路可发脉冲100KHz)可直接驱动步进电机。支持ModBusRTU协议,有两组RS-485、一组RS-232一个USB数据端口以满足用户通信需求。
3.3文本显示器
在此测试系统设计中,使用了巨控ATP2文本显示器,它自带4个按键输入功能,可以在程序中根据用户需求自定义功能,也可以直接监控修改程序参数,免开发,直接与巨控PLC连接即可使用。
4软件设计
程序设计:如图8所示为位移传感器测试程序。程序中当启动步进电机进行测试时,运行信号M2通过ModBus传送到I/O模块Q1,输出信号Q1作为启动运行指示灯信号。F0功能块是巨控文本显示器ATP2所特有的按键功能,F0为测试次数清零,F1功能块是启动步进电机运行,AI0模拟量输入是位移传感器的模拟信号输入,当AI0的输入值为0V时步进电机正转,随着电机的转动位移传感器输出电压模拟量随之增加,当增加到9V时步进电机反转且测试增加一次,Text功能块为实时显示当前模拟量输入情况、误差、测试次数;AI1模拟量输入是外接电阻1KΩ的模拟信号,根据AI1模拟量电压输入低于1.92V时,输出报警信号M1通过ModBus传送到I/O模块Q0,此时测试次数停止计数,保持合格时的次数。且步进电机带动传感器返回到0V位置时停止运动。程序中还设计了步进电机的加减速度调整如图4所示,F2为减速功能,F3为加速功能。步进电机接线图如图9所示。
图8位移传感器测试程序
图9 步进电机速度调整程序
5
此位移传感器测试系统的应用同样适用于温度、湿度、压力、**、等模拟量输入类型的系统应用。它具有使用方便、接线简单、程序易开发、高性价比等特点。巨控PLC还具有实时数据保存功能,可以完整记录整个测试过程中的全部数据,以便用户了解测试样品在整个耗损周期内的数据变化。
目前在模拟量采集精度上存在一定的不足,巨控的PLC精度是10位,小分辨率的10mV,在后期巨控PLC将**精度到16位以满足更高的采集数据要求,并且将补充电流型的模拟量输入采集控制器。