产品描述
西门子模块6ES7222-1BD22-0XA0多库发货
1.PLC使用前的检查
(l)检查电源接线(电源OFF)。电源端子接线错误、直流输入线与电源线短路,或输出线之a短路等均会严重损坏PLC。在接通电源前先检查电源及接地的接线,以及输入/输出接线。
(2)程序及检查:电源0N,DVP-PLC,STOP。使用外围装置将程序写入主机之后,将写入程序读出、并使用程序检查功能(请参考HPP中文操作手册)来检查程序之回路与文法是否正确。
(3)运转与测试:电源ON、PLC-RUN。RUN输入端及COM端导通的话,或将RUN开关拨至0N位置,处于运转模态,运转中可藉由HPP来变定时器(T)、计数器C,缓存器(D)之设定值及暂存值,并可强制输出接点作ON/OFF动作。使用HPP可呼叫出各部继电器之ON/OFF动作及T、C、D之设定值与现在值。
(4)LED指示灯检测异常。电源指示上POWER灯正常时主机通上电源时LED亮绿灯,如果主机通上电源时指示灯不亮若拆掉+24V导线,指示灯会亮,表示PLC的DC负载过大,这时请另行准备DC24V电源供应器。
(5)电池电压指示(BATT、LOW灯):
·当电池电压不足时本指示灯亮,同时特殊补助继电器ON o当此灯开始亮起,约一个月后程序(当使用RAM时)自动消失,而靠电池作停电记忆之记忆区全部归0。
·当此灯亮时请交换新电池(建议五年换一次)。
·当主机盖拿下即可换电池。
·如果特殊补助继电器被驱动的话,即使电池电压已降低BATT,VLED仍不会点亮,但特殊补助继电器将被设定为ON。
·.如果电池电压下降,则用来设定定时器、计数器或其它目的的资料缓存器内的资料将不。
(6)程序错误指示(PROG.E灯闪烁):
·定时器/计数器忘了设定而使用该号接点、程序回路不合理、电池电力不足、或是因外来之噪声干扰导致程序内容产生变化时,此点闪烁。此时,请检查程序是否正确,是否有较强之噪声干扰源存在,电池电压是否不足。
·当错误发生时可由Hpp按[OTHER]键两次,即可显现出侦错号码,另外亦可由D1004来显示值。侦错号码请参考功能说明。
·CPU错误指示:ERROR灯亮。
· 当cpu因外来噪声或异物侵入而失控,或程序执行时间过0.1秒时,CPU,ERROR将点亮。在PLC电源0N状况下,插拔内存卡匣也会使CPU-LED点亮。
·关掉电源一会儿再打开电源,然后再使PLC运转。若此时PLC可正常运转,请检查可能发生的噪声源,或PLC内部有否异物侵入。
· PLC接地线至少2平方 (AWG14)尽量使接地线长度缩短,建议采用Class接地(接地阻抗100Ώ如果因接地不正确而使PLC功能不正常请将接地线自端子拆除,此时需将主机与扩充机之接地端子连接在一起。
·当地线自PLC拆除时,若错误指示由CPU-LED变成PROG.E时,请查看程序之执行周期时间是否过长(过100ms以上)?执行周期时间存放在资料缓存器D1012。
(7)输入信号显示:
·输入信号ON/OFF状态由输入指示灯显示,也可由Hpp或计算机联机画面叫出监控。
·当输入开关之ON定格电流过大时,输入开关会发生接触不良的情况请注意。
·输入开关并接指示灯作输入显示时,请注意当开关OFF时,PLC仍会因为并皆知指示灯之残余电流的关系,造成PLC输入点无法OFF而形成误动作。
·凡是比程序执行时间短之外部输入点ON/OFF,CPU无法有效的抓取。
·PLC主机或I/0扩充机座上之DC24V电源供应端过负载或短路时,内部保护回路会自动的将电压降低而造成PLC停机。此种情况下,请将24+之配线全部拿开再检查配线。
·千万不要在输入端外加电压,尤其是AC 110V/220V将造成输入回路烧毁。
·主机与I/O扩充机座之输入端子台是可自由插入/拔除的。
(8)输出信号显示。若输出负载未能依LED状态的ON/OFF动作可能原因有:
·输出接点因过载或短路造成接点损坏或不良。
·主机或扩充机端子台是可拆式,有可能接触不良,重新再锁紧。
·外加之电源线路有问题。
2.PLC的日常维护检查
(1)锂电池寿命约5年,需换。
(2)输出接点电流较大或O N/OFF频繁者要注意接点寿命,检查换。
(3)PLC使用于振动机械上时要注意端子的松动现象。
(4)注意Plc的外围温度( O-55方)湿度(35-85%RH不结露)及粉尘。
(5)锂电池电压太低,面板上BATT.low灯会亮,虽然程序尚可保持一月以上。
(6)换电池方法步骤:切电源、取下上盖板、拔下旧电池、30秒内插上新电池、固定新电池并盖好上盖板。
近年来,随着可编程控制器(以下简称PLC)技术的不断发展,速度、功能、性和稳定性的不断提升,其在工业控制中的运用越来越广泛。个人计算机(以下简称PC)具有人机界面好,编程软件丰富,数据处理快,信息存储方便,图像功能完善等优点。以PLC为下位机,以PC机为上位机的联机控制模式,结合了PLC与PC各自的优点,提高了控制能力和性,不仅操作使用方便,产品造价也较低,因而成为工业控制中应用较多的模式。本文以电动机正反转控制为实例,说明松下FP1系列PLC与PC实现联机控制的方法。
1. 松下FP1系列PLC与PC机的通信连接
松下FP1系列PLC均设有一个RS422串行通信接口。该接口既可用于PLC与PC机联机进行梯形图程序编程与调试,也可用于正常工作时的数据通信。PC机一般均设有一个以上的RS232C串行通信接口。由于RS232C和RS422属于不同的串行通信接口,通信信号的类型和工作方式不一样,因此,PLC与PC进行串行通信连接时,在中间安装一个RS422/RS232C适配器来完成信号的转换(部分PLC也具有RS232C口,此时可直接连接)。FP1系列PLC与PC机的通信连接如图1所示。
2. PLC控制电机正反转电路设计
PLC控制电机正反转的接线如图2所示,其中SB0、SB1、SB2开关按钮分别用于控制电机的正转、反转和停止;KM1、KM2分别为电机正反转控制的接触器。由于PLC直接控制交流接触器,所以PLC应选择继电器输出型,并在接触器回路采用互锁来保证电路的。
3. PC与PLC的联机控制程序
按上述图1完成PLC与PC机的通信连接后,还需采用PLC联机编程软件或手持编程器对PLC内部通信参数的系统寄存器No.410~No.418进行设定,具体为:串口选择为COM1,波特率为9600bps,数据位长度为8位,停止位为1位,奇校验,单元号为1。
4.PLC控制程序
PLC的控制程序要既能现地控制,又能使PC机通过串口通信实现上位机对电动机的正反转控制和电机状态信息反馈。具体程序如图3所示。
程
序中为实现PC机对电机的控制使用了R100、R101和R102三个内部继电器。内部继电器可由PC机按松下FP1系列PLC的NEWTOCOL通信协议(具体协议可参考厂家资料),以发送特定字符串的形式进行读写。为了按钮操作的效果,三个内部继电器由上位机置位后启动对应的定时器,经0.8S后由定时器对内部继电器自动进行复位。
5. PC机控制程序与界面
作为上位机,PC机通过人机界面,将操作人员的操作指令转换成相应的通信字符串并经串口发送至PLC,实现对电机的控制;另一方面,PC机定时读取PLC寄存器的数据,从而可判断出PLC对电动机的控制状态并在人机界面上显示出来。
PC机的程序利用Visual Basic 6.0进行开发,,从菜单“工程”→“部件…”→“控件”中添加串行口通信控件Microsofc Comm Control 6.0到工具箱中,然后从工具箱中往窗体添加下表所列的控件。
序号 | 控件类型 | 控件名称 | 说 明 |
1 | bbbb | frmmain | 程序主窗体 |
2 | frame | Frame1 | 框架 |
3 | MSComm | MSComm1 | 串口通信控件 |
4 | Timer | Timer1 | 定时器 |
5 | CommandButton | cmdzz | 正转按钮 |
6 | CommandButton | cmdfz | 反转按钮 |
7 | CommandButton | cmdtj | 停机按钮 |
8 | Label | Labdjzt | 电机状态显示标签 |
添加上述控件后的程序窗体如图4所示。
PC机的控制程序如下:
Private Sub bbbb_Load() '窗体加载过程
mPort = 1 '通信控件选用PC机的串口1
MSComm1.Settings = "9600,o,8,1" '设定串口1的波特率为9600bps,奇校验,8位数据位,1位停止位
MSComm1.PortOpen = True '打开串口1
Timer1.Interval = 1000 '定时器1的定时值为1s
Timer1.Enabled = True '启动定时器1
End Sub
Function com(a As bbbbbb, b As Integer) '向PLC读写寄存器内容函数
MSComm1.InBufferCount = 0 '清空串口的接收缓冲区
MSComm1.Output = a '将要发送的字符串从串口发送出去
Do
DoEvents
Loop Until MSComm1.InBufferCount >= b '等待PLC的响应字符至一定位数
com = MSComm1.bbbbb '读入串口接收到的字符串
End Function
Private Sub Timer1_Timer() '定时读取Y0、Y1的值以判断电机当前状态
a = "%01#RCP2Y0000Y0001**" + Chr(13) '定义读Y0、Y1值的通信字符串
s = com((a), 9) '读Y0、Y1的当前值
If Mid(s, 7, 1) = "1" Then '返回字符串中7位为1表示Y0接通,电机正转
cmdzz.Enabled = False '电机已正转,禁止操作正转按钮但可操作反转按钮
cmdfz.Enabled = True
Labdjzt.Caption = "电机当前状态:正转"
ElseIf Mid(s, 8, 1) = "1" Then '反转
cmdfz.Enabled = False '电机反转,禁止操作反转按钮但可操作正转按钮
cmdzz.Enabled = True
Labdjzt.Caption = "电机当前状态:反转"
ElseIf Mid(s, 7, 1) = "0" And Mid(s, 8, 1) = "0" Then '停机
cmdfz.Enabled = True '电机已停止,可操作正转或反转按钮
cmdzz.Enabled = True
Labdjzt.Caption = "电机当前状态:停止"
End If
End Sub
Private Sub cmdzz_Click() '正转指令
a = "%01#WCSR01001**" + Chr(13) '定义将R100置1,启动正转的通信字符串
s = com((a), 7)
End Sub
Private Sub cmdfz_Click() '反转指令
a = "%01#WCSR01011**" + Chr(13) '定义将R101置1,启动反转的通信字符串
s = com((a), 7)
End Sub
Private Sub cmdtj_Click() '停机指令
a = "%01#WCSR01021**" + Chr(13) '定义将R102置1使电机停转的通信字符串
s = com((a), 7)
End Sub
运行上述程序,既可在PC机上实现对电机正反转以及停止的控制,也可在现地通过SB0、SB1和SB2按钮实现对电机的控制;既可在现地启动或停止电机转动,也可在PC机上实现停机或电机转动控制。由于PC机定时读取PLC内部Y0、Y1的值,所以在现地操作改变电机的工作状态时,在PC机程序中可显示出当前电机的工作状态并禁止相应的操作,真正实现了PC与PLC的联机控制。
6. 结束语
上述设计已在实践中应用。经验证,可在此基础上,增加联机通信故障自动检测报警功能,利用数据读写命令实现联机大批量数据传送,根据现地来的状态信息增加PC机动画演示功能,从而使PC与PLC的联机控制程序加完善,控制界面加形象。根据上述原理,结合PC与PLC控制的特点,可在其它控制场合使用上述方法实现双机甚至多机联机控制
一、前言
交通灯控制系统是一个老掉牙的问题,各种方式的控制系统也不断产生。随着我国经济建设的不断发展,城市化进程不断加强,机动车辆也不断增多,交通信号控制功能不断扩展,其控制效率要求不断提高。基于PLC的交通灯控制系统能把可编程控制器的软硬件系统功能强大、性好,逻辑编程方法简单,易于开发复杂控制系统、有丰富的扩展模块和联网能力和应用范围十分广泛的特点结合起来,使系统易于实现。
本系统采用日本松下电工生产的小型FP0系列PLC作主控系统,其体积小但功能强大。我们按照现有十字路口的交通灯的设计方案来说明基于PLC的交通灯控制系统的方便性特点,也间接说明其在满足控制系统要求的功能扩展上也易于实现。
二、系统控制设计
1、系统功能要求
交通灯系统启动时,红、绿、黄灯按一定时序轮流发亮。,南北红灯亮,东西绿灯亮。南北红灯维持35s(可由用户设定),在南北红灯亮同时东西绿灯也亮,并维持30s,到了30s时,东西路灯闪亮,闪亮周期为1s。绿灯闪亮3s后熄灭,东西黄灯亮,并维持2s。到2s时,东西黄灯熄、红灯亮,同时南北红灯熄,绿灯亮。东西红灯亮维持25s(可由用户设定),南北绿灯亮维持20s。到20s时,南北绿灯亮3s后灭,南北黄灯亮,并维持2s。到2s时,南北黄灯熄、红灯亮,同时东西绿灯亮,开始下一周期的动作;系统可间显示;当紧急状态要一侧方向通过时,可以使南北方向红灯亮,东西方向绿灯亮或者南北方向绿灯亮,东西方向红灯亮;在特殊情况下,系统可以人为根据各方向车流量,进行各车道通行时间的变;在某时段如23:00至次日6:00车流量很少情况下,系统可以设定为各方向的只有黄灯闪烁。
2、系统设计
2.1硬件设计
硬件主要采用日本松下电工生产的小型FP0-C32CT型(带日历时钟功能)PLC,其I/O分别各有16个;根据系统要求需要进行I/O扩展要求,需要配一级扩展单元FP0-E16YT,其有16个输出。其I/0分配如表1,其控制输入输出接线原理图如图1所示。输出设备是电压高,功率大的设备,可由PLC输出给中间继电器,再通过中间继电器进行外部设备的输出控制。
表1 系统I/0分配表
输入 | 功能 | 输出 | 功能 |
X0 | 系统启动按钮SB1 | Y0 | 南北红灯 |
X1 | 系统停止按钮SB2 | Y1 | 东西绿灯 |
X2 | 南北方向急停开关S1 | Y2 | 东西黄灯 |
X3 | 东西方向急停开关S2 | Y3 | 东西红灯 |
X4 | 南北方向时间增加按钮SB3 | Y4 | 南北绿灯 |
X5 | 南北方向时间减少按钮SB4 | Y5 | 南北黄灯 |
X6 | 东西方向时间增加按钮SB5 | Y20-Y2F | 用于数码时间显示 |
X7 | 东西方向时间减少按钮SB6 |
|
|
图1 外部接线原理图
2.2软件设计
系统软件设计内容包括交通灯顺序循环控制、两方向的急停控制、数码时间显示控制、定时时段控制、各路通行时间变控制几部分。顺序循环控制主要采用定时器指令编写,通过时间的顺序运行,来达到各路灯的按要求输出;通过配合各路急停开关的闭锁实现各方向的红灯或绿灯亮,当急停开关恢复后,又通过对定时器的内部经过值SV赋值,达到路灯进行切换恢复的目的,程序参考图2。我们可以通过PLC内部的日历时钟功能,对内部运行的时钟数据存储区进行取值比较,用类似急停控制的方法,实现某时段各方向的黄灯闪(程序略);由于采用的定时器立的,故对于各路通行时间变控制可以采用对定时器TM0对TM4的设定值SV赋值来改变,当然各方向时间也不能无限增大和减小,我们可以通过比较指令限制其在的数值范围(程序略)。通过对定时器TM0对TM4中变化的经过值EV,我们可以通过指令实时把他们转为BCD码,再由专门指令直接转换为七段码数值,用于对各方向时间的显示(程序略)。
图2 顺序循环控制和急停控制的程序
三、系统扩展性
随着城市交通系统的日趋复杂和控制自动化程度的加大,使用该套PLC的交通灯控制系统,也能实现其自动控制的过程。如某些交通道路有六车道及人行道等,各道进行相应时序控制;有些交通道路采用智能化控制,根据车自动改变各方向的通行时间,并通过控制系统对各路通信号和系统参数进行远程监控和设置等;FP0系列PLC体积小,软硬件功能强,具有运行速度快、程序容量大、指令功能强、具有远程通讯功能等等,其可进行三级I/O扩展单元,大I/O点数达128个,在通讯方面,FP0可以经RS232口直接连接调制解调器,在选用调制解调器方式下,FP0使用AT命令自动拨号以实现远程通讯;其也可以使用C-NET通讯单元,把多个FP0单元连接一起构成分布式控制网络,实现计算机监控,计算机与多台PLC连接图如图3所示。通过上面说明,使用基于PLC的控制可以满通灯系统硬件功能的扩展和分布式监控网络化的需要。
图3 计算机与多台PLC控制单元连接图
四、总结
通过调试,本系统使用PLC中的定时器分段设置,容易配合急停控制、各方向时间变控制和间的显示,该交通信号灯的控制系统结构简单,接线容易,程序编写的控制算法灵活方便,在软硬件的维护上比较容易,性也比较高。在可扩展性方面比较容易,易实现智能的交通监控和控制,满足根据道路情况和季节变化情况的通行时间的改变,减少各方向的车辆滞留,缓解交通拥挤情况,其经济和社会效益比较明显。
问:我有一个改造项目新系统的313C PLC需要从老系统上用MpI通讯读取一个模拟量和16个数字量的数据,现在问题是用定义全局数据通讯还是在新系统plc中用sfc67和sfc68通讯,是不是编程通讯比全局数据通讯速度快稳定?请高手指点。(还要问一句如果用编程通讯的话怎么把定义好的全局数据给删除掉)如果不用全局数据的话,用编程,两个plc在组态里用不用连?是不是只用设置一下地址就行了吧?
答:全局数据通信是PLC之间进行的不需要编程通过MPI接口在CPU间循环地交换少量数据,当过程映像被刷新时,在循环扫描检测点上进行数据交换;而无组态的连接的MPI通信(编程通信)通过调用SFC67和SFC68来实现,MPI无组态连接就是MPI通信时,不需要组态,只要编写通信程序即可实现通信,PLC之间可以采用双边编程通信和单边编程通信方式,你这里应该是采用单边编程通信方式,因为CPU313C需要从老系统上用MpI通讯读取一个模拟量和16个数字量的数据,只要在CPU313C上进行编程就可以实现数据交换,编程通信要比全局的数据量要大,速度快;
你把两个PLC之间的MPI端口连接起来,设定主站CPU313C的MPI通信参数(波特率187.5kbit/s)和主站的MP地址如“3”,不能与老的PLC的MPI地址重复,把两个站的波特率设定一样,各自下载到PLC中;因为你只想老系统上用MpI通讯读取一个模拟量和16个数字量的数据,在CPU313C中单边编程,在读取数据区只要对方的PLC的MPI地址和数据区就可以了。
X_PUT(SFC68)为发送数据的指令,通过此指令将数据写入不在同一个本地S7站中的通信伙伴,其中DEST_ID为对方的MPI地址(这里指你的老系统PLC的MPI地址)和VAR_ADDR为对方的数据区,SD为本地数据区,保证SD参数定义的数据长度和数据类型与通信伙伴上VAR_ADDR一致;
X_GET(SFC67)为接收数据的指令,可以从本地站S7站以外的通信伙伴(这里指老系统上PLC站)中读取数据,其中参数DEST_ID和VAR_ADDR分别指对方的MPI地址和对方的数据区,RD为本机的数据区保证RD参数定义的接收区(CPU313C)至少和由VAR_ADDR参数定义的要读取的区域一样大,而且类型相匹配。如果不想要全局数据通信,只要在硬件组态界面中选择菜单Options(选项)/Define bbbbbb Data“(定义全局数据)界面中,打开全局变量发送和接收组态,断口连接,执行保存编译,下载到PLC就可以了。
近年来,随着可编程控制器(以下简称PLC)技术的不断发展,速度、功能、性和稳定性的不断提升,其在工业控制中的运用越来越广泛。个人计算机(以下简称PC)具有人机界面好,编程软件丰富,数据处理快,信息存储方便,图像功能完善等优点。以PLC为下位机,以PC机为上位机的联机控制模式,结合了PLC与PC各自的优点,提高了控制能力和性,不仅操作使用方便,产品造价也较低,因而成为工业控制中应用较多的模式。本文以电动机正反转控制为实例,说明松下FP1系列PLC与PC实现联机控制的方法。
1. 松下FP1系列PLC与PC机的通信连接
松下FP1系列PLC均设有一个RS422串行通信接口。该接口既可用于PLC与PC机联机进行梯形图程序编程与调试,也可用于正常工作时的数据通信。PC机一般均设有一个以上的RS232C串行通信接口。由于RS232C和RS422属于不同的串行通信接口,通信信号的类型和工作方式不一样,因此,PLC与PC进行串行通信连接时,在中间安装一个RS422/RS232C适配器来完成信号的转换(部分PLC也具有RS232C口,此时可直接连接)。FP1系列PLC与PC机的通信连接如图1所示。
2. PLC控制电机正反转电路设计
PLC控制电机正反转的接线如图2所示,其中SB0、SB1、SB2开关按钮分别用于控制电机的正转、反转和停止;KM1、KM2分别为电机正反转控制的接触器。由于PLC直接控制交流接触器,所以PLC应选择继电器输出型,并在接触器回路采用互锁来保证电路的。
3. PC与PLC的联机控制程序
按上述图1完成PLC与PC机的通信连接后,还需采用PLC联机编程软件或手持编程器对PLC内部通信参数的系统寄存器No.410~No.418进行设定,具体为:串口选择为COM1,波特率为9600bps,数据位长度为8位,停止位为1位,奇校验,单元号为1。
4.PLC控制程序
PLC的控制程序要既能现地控制,又能使PC机通过串口通信实现上位机对电动机的正反转控制和电机状态信息反馈。具体程序如图3所示。
程
序中为实现PC机对电机的控制使用了R100、R101和R102三个内部继电器。内部继电器可由PC机按松下FP1系列PLC的NEWTOCOL通信协议(具体协议可参考厂家资料),以发送特定字符串的形式进行读写。为了按钮操作的效果,三个内部继电器由上位机置位后启动对应的定时器,经0.8S后由定时器对内部继电器自动进行复位。
5. PC机控制程序与界面
作为上位机,PC机通过人机界面,将操作人员的操作指令转换成相应的通信字符串并经串口发送至PLC,实现对电机的控制;另一方面,PC机定时读取PLC寄存器的数据,从而可判断出PLC对电动机的控制状态并在人机界面上显示出来。
PC机的程序利用Visual Basic 6.0进行开发,,从菜单“工程”→“部件…”→“控件”中添加串行口通信控件Microsofc Comm Control 6.0到工具箱中,然后从工具箱中往窗体添加下表所列的控件。
序号 | 控件类型 | 控件名称 | 说 明 |
1 | bbbb | frmmain | 程序主窗体 |
2 | frame | Frame1 | 框架 |
3 | MSComm | MSComm1 | 串口通信控件 |
4 | Timer | Timer1 | 定时器 |
5 | CommandButton | cmdzz | 正转按钮 |
6 | CommandButton | cmdfz | 反转按钮 |
7 | CommandButton | cmdtj | 停机按钮 |
8 | Label | Labdjzt | 电机状态显示标签 |
添加上述控件后的程序窗体如图4所示。
PC机的控制程序如下:
Private Sub bbbb_Load() '窗体加载过程
mPort = 1 '通信控件选用PC机的串口1
MSComm1.Settings = "9600,o,8,1" '设定串口1的波特率为9600bps,奇校验,8位数据位,1位停止位
MSComm1.PortOpen = True '打开串口1
Timer1.Interval = 1000 '定时器1的定时值为1s
Timer1.Enabled = True '启动定时器1
End Sub
Function com(a As bbbbbb, b As Integer) '向PLC读写寄存器内容函数
MSComm1.InBufferCount = 0 '清空串口的接收缓冲区
MSComm1.Output = a '将要发送的字符串从串口发送出去
Do
DoEvents
Loop Until MSComm1.InBufferCount >= b '等待PLC的响应字符至一定位数
com = MSComm1.bbbbb '读入串口接收到的字符串
End Function
Private Sub Timer1_Timer() '定时读取Y0、Y1的值以判断电机当前状态
a = "%01#RCP2Y0000Y0001**" + Chr(13) '定义读Y0、Y1值的通信字符串
s = com((a), 9) '读Y0、Y1的当前值
If Mid(s, 7, 1) = "1" Then '返回字符串中7位为1表示Y0接通,电机正转
cmdzz.Enabled = False '电机已正转,禁止操作正转按钮但可操作反转按钮
cmdfz.Enabled = True
Labdjzt.Caption = "电机当前状态:正转"
ElseIf Mid(s, 8, 1) = "1" Then '反转
cmdfz.Enabled = False '电机反转,禁止操作反转按钮但可操作正转按钮
cmdzz.Enabled = True
Labdjzt.Caption = "电机当前状态:反转"
ElseIf Mid(s, 7, 1) = "0" And Mid(s, 8, 1) = "0" Then '停机
cmdfz.Enabled = True '电机已停止,可操作正转或反转按钮
cmdzz.Enabled = True
Labdjzt.Caption = "电机当前状态:停止"
End If
End Sub
Private Sub cmdzz_Click() '正转指令
a = "%01#WCSR01001**" + Chr(13) '定义将R100置1,启动正转的通信字符串
s = com((a), 7)
End Sub
Private Sub cmdfz_Click() '反转指令
a = "%01#WCSR01011**" + Chr(13) '定义将R101置1,启动反转的通信字符串
s = com((a), 7)
End Sub
Private Sub cmdtj_Click() '停机指令
a = "%01#WCSR01021**" + Chr(13) '定义将R102置1使电机停转的通信字符串
s = com((a), 7)
End Sub
运行上述程序,既可在PC机上实现对电机正反转以及停止的控制,也可在现地通过SB0、SB1和SB2按钮实现对电机的控制;既可在现地启动或停止电机转动,也可在PC机上实现停机或电机转动控制。由于PC机定时读取PLC内部Y0、Y1的值,所以在现地操作改变电机的工作状态时,在PC机程序中可显示出当前电机的工作状态并禁止相应的操作,真正实现了PC与PLC的联机控制。
6. 结束语
上述设计已在实践中应用。经验证,可在此基础上,增加联机通信故障自动检测报警功能,利用数据读写命令实现联机大批量数据传送,根据现地来的状态信息增加PC机动画演示功能,从而使PC与PLC的联机控制程序加完善,控制界面加形象。根据上述原理,结合PC与PLC控制的特点,可在其它控制场合使用上述方法实现双机甚至多机联机控制
产品推荐