PLC程序运行过程揭秘 (plc程序运行时读取的开关状态)

PLC程序运行过程揭秘:开关状态的读取与处理

一、引言

在现代工业自动化领域,PLC(可编程逻辑控制器)作为核心设备,负责控制各种机械和电气系统的运行。
PLC程序运行过程是一个复杂而精确的过程,涉及到多种开关状态的读取和处理。
本文将详细介绍PLC程序运行过程,特别是开关状态的读取机制。

二、PLC基本结构与工作原理

PLC主要由CPU、存储器、输入输出接口等部分组成。
其工作原理是:通过输入接口接收来自现场设备的各种开关信号,经过PLC内部程序的逻辑处理后,通过输出接口控制现场设备的运行。

三、PLC程序运行过程

1. 上电初始化:PLC上电后,首先进行初始化操作,包括检查硬件状态、启动操作系统等。
2. 读取输入信号:PLC通过输入接口实时读取现场设备的开关状态,这些开关状态是PLC程序运行的重要依据。
3. 程序执行:PLC按照预定的程序执行逻辑,对读取的开关状态进行逻辑处理。
4. 输出控制:根据程序执行结果,PLC通过输出接口向现场设备发送控制信号,控制设备的运行。
5. 监控与诊断:在程序运行过程中,PLC不断进行自诊断和状态监控,确保系统的稳定运行。

四、开关状态的读取与处理

1. 开关状态的读取

PLC通过数字量输入模块(DI模块)读取现场设备的开关状态。
这些开关状态通常表示为二进制数(0或1),代表开关的开启或关闭。
DI模块将来自现场设备的开关信号转换为PLC内部可识别的数字信号。

2. 开关状态的处理

PLC程序根据读取的开关状态,按照预设的逻辑进行数据处理。
这些逻辑可以是简单的条件判断,也可以是复杂的组合逻辑。
处理过程中,PLC还会涉及到内部寄存器的读写操作,以实现数据的存储和传递。

五、PLC程序运行过程中的关键步骤与机制

1. 输入扫描:PLC在程序执行前,首先进行输入扫描,即读取现场设备的开关状态。这一步骤是PLC程序运行的基础。
2. 程序执行:PLC按照预定的程序逻辑执行操作,包括条件判断、数据处理等。
3. 输出刷新:程序执行完毕后,PLC进行输出刷新,即将控制信号发送到现场设备。
4. 定时器与计数器:在PLC程序中,定时器和计数器是处理开关状态的重要工具。定时器用于延迟操作,计数器用于统计开关状态的次数。
5. 自诊断与监控:PLC在程序运行过程中不断进行自诊断和状态监控,以确保系统的稳定运行。

六、实际应用中的注意事项与优化建议

1. 注意事项

(1)确保现场设备的开关状态与PLC的输入接口正确连接。
(2)注意PLC程序的实时性,确保在有限的时间内完成开关状态的处理。
(3)关注PLC的硬件与软件兼容性,以确保系统的稳定运行。

2. 优化建议

(1)优化PLC程序逻辑,提高处理效率。
(2)采用模块化设计,提高程序的可读性和可维护性。
(3)定期进行软件升级,以获取最新的功能和性能优化。

七、结论

PLC程序运行过程是一个复杂而关键的过程,涉及到开关状态的读取与处理。
了解PLC程序运行过程和开关状态的读取机制,有助于更好地应用和维护PLC系统。
在实际应用中,我们需要注意硬件连接、程序实时性、兼容性等问题,并采取相应的优化措施,以提高系统的性能和稳定性。


基于PLC的水厂投药控制系统实现

1 引言茂名市第二自来水厂的日产量为2×105立方米,提供茂名市区70%以上的日常用水。 为缓解该市的供水紧张状况,市政府加大投资力度,对该水厂进行扩建。 该水厂设备自动化程度较高,整个自控系统采用(PC+PLC)的组成形式。 滤池控制在水厂自动化中属于较难设计的环节,主要表现在反冲洗过程中开、关阀顺序和开、关阀条件的复杂上。 本文主要阐述该厂扩建滤池自控系统的主要设计过程。 2 滤池系统的控制任务2.1工艺要求 第二自来水厂新扩建的V型滤池共设六个滤格,每格安装有一个液位计、一个阻塞仪,每滤格均有各自的进水阀、清水阀、气冲阀、水冲阀以及排水阀和排气阀。 用于气冲的鼓风机有3台(两用一备);用于水冲的3台反冲洗泵(两用一备);两台空气压缩机(一用一备);1台干燥器。 待滤水进入滤池的各单元滤格,经石英沙恒速过滤后,再进入清水池。 过滤的工艺要求滤格内的水位保持在滤料上的1.2米处,在这个水位上,过滤的效果最好。 为实现等速恒水位过滤,就要使滤池的出水量等于进水量,应根据滤池水位变化来调节出水阀的开启度以控制出水量的大小。 而当滤池的运行满足反冲洗的约束条件时,需要进行反冲洗清洁滤沙。 反冲洗是通过控制滤池进水阀、清水出水阀、反冲进气阀、排气阀、反冲进水阀、反冲排水阀并运行反冲水泵、风机等来实现的。 因此,滤池控制系统的任务主要是过滤时的液拉控制和清洁过滤砂时的反冲洗控制,过滤和反冲洗不断循环交替进行。 2.2 对控制系统的性能指标要求如(1)实现自动恒水位过滤,误差:±1.5㎝;(2)根据下列约束条件之一,能准确地实现自动反冲洗:?过滤时间达到反冲洗设定周期(如48小时)仍未反冲洗的;?过滤水头损失值到达设定值(150)且延时时间(15分钟)已到,仍未反冲洗的;?强制反冲洗按钮被触发。 (3)反冲洗周期、反冲洗过程中各步骤的时间均可通过程序设定,满足工艺及实际操作要求。 (4)能直观显示滤池过滤水位、水头损失及出水阀开启度,同时显示反冲洗设备、本地滤池阀门等的开关状态。 (5)对反冲洗设备、本地滤池阀门及反冲洗过程既可以实现全自动控制,也可以进行手动控制。 3 滤池的控制原理与运行过程3.1 恒水位控制原理滤池的恒水位控制如图1所示。 每个滤池将滤池水位检测值和水位设定值进行比较,得到水位偏差信号Δe,经PID运算后把输出信号送给输出附加处理程序,再输出给出水阀的伺服电机以控制出水阀的开度。 开度增大的数值是由一定累积时间内水位上升的速度及水位偏差共同决定的。 若进水流速越快,出水阀开度就越大,反之越小。 PID运算的目标是把水位保持在设定值,附加值可作为补偿添加到输出控制中。 输出附加处理程序是把PID的运算结果按一定的规律输出给清水阀伺服电机。 图1滤池恒水位控制系统图3.2 反冲洗过程当控制系统接收到反冲洗指令信号时,按照先进先出的原则排队进行反冲洗。 反冲洗分气洗、气水混合洗、水洗三个阶段,过程如下:首先关闭待滤水进水阀,当水位降至设定的反冲水位时,关闭清水出水阀并打开废水排水阀,排水阀的信号到位后先关闭排气阀,再打开反冲进气阀,启动第一台风机进行气冲,气冲需要时间1-3min;完成后,打开反冲进水阀,再启动第2台风机及第1台水泵,进行气水混合洗,时间为5min;然后关闭2台风机,关闭反冲进气阀,打开排气阀,启动第2台水泵,进行单水冲洗,需要时间3-6min,完成后关闭反冲进水阀,停2台反冲洗水泵,关闭排废水阀,打开待滤进水阀,打开滤后清水阀。 当水位升到过滤恒水位时,系统又转入正常的过滤程序。 4 控制系统设计 4.1 硬件构成及网络结构本系统采用PC+PLC的构成形式。 上位机由一台COMPAQ微机和两台打印机组成,下位机由模拟屏PLC8、公共冲洗PLC7和六个单元滤池PLC1-6共八台施奈德公司的PLC组成,如图2所示。 各PLC采用双绞线电缆连成的总线形接出式拓朴结构通信网,其又称FIPWAY通信网,传输速率为1Mbps。 各PLC之间彼此进行通信,实现数据共享。 单元滤池和公共冲洗的PLC,均配备一台现场XBT—B(人工智能接口),它通过电缆与PLC联系,在XBT操作盘上可以对滤池进行现场手动控制。 各单元滤池PLC通过FIPWAY网络与公共冲洗PLC相连,公共冲洗PLC又通过网络进入水厂中控室和微机联网,故系统能在中控室内对滤池的运行进行远程监控,实现了中控室计算 图2滤池自控系统网络图机集中监控、PLC远程控制、现场XBT操作的三级控制,从而确保了滤池生产运行的安全可靠性。 本系统PLC配置如下:PLC8:TSX47/415的CPU/COM、POWER、DI各一块;DO为9块。 模拟屏设有D/A转换器。 PLC7:TSX67/455的CPU/COM、POWER、DO和AI(TSXAEM811)各1块;DI为2块。 PLC1-6:TSX47/415的CPU/COM、POWER、DI、DO、AI(TSXAEM411)各1块。 PLC与PC机的通讯,要先在PC机安装TE公司的专用FIPWAY通讯网卡,然后通过RS422通讯接口进行数据通讯。 4.2 PLC的控制功能单元滤池的PLC主要完成本格滤池的恒水位过滤控制和每格滤池的进水阀、出水阀、排污阀、反冲进气阀、排气阀、反冲水阀等的自动控制,及数据采集,并与公共冲洗PLC交换数据信息。 当滤板下的阻塞仪将滤床阻塞程度信号转送给滤池单元PLC,PLC接收信号后,与水头设定值进行比较、显示出来,用以决定滤池是否要反冲洗,并传送至公共冲洗PLC。 滤池的开启个数由进水流量决定,每个滤池由液位计和阻塞仪测出滤池的水位和水头损失值,并和滤后水阀门开度这三个参数送单元PLC,经PLC内置PID运算后,若水位偏差超过1.5cm时,PLC立即启动控制单元自动调整滤池出水蝶阀的开度,维持滤池水位基本恒定,从而实现恒水位过滤。 公共冲洗PLC负责六个滤池的反冲洗排队协调、和对反冲洗设备(反冲水泵、鼓风机等)及其进出口阀门的监控。 当单元PLC向公共冲洗PLC发出反冲洗请求时,公共冲洗PLC则开始启动反冲洗程序对该滤池进行反冲洗控制。 当某滤格正在反冲洗时,若又有一个或多个滤池发出反冲洗请求信号时,则此信号被存入公共冲洗PLC存储器中,然后按存储先后顺序进行冲洗,排队等待反冲洗的滤池则维持正常的生产。 模拟屏PLC的作用是驱动模拟屏工作及实现与水公司电台系统、微机的通讯。 在模拟屏上能动态显示整个水厂的工艺流程和设备运行状态以及其主要的工艺参数,并实现声光报警,便于生产调度管理。 4.3 程序设计当滤池满足反冲洗控制约束条件之一时进行反冲洗。 本系统用一个反冲洗PLC实现六个滤池的排队反冲洗,通过公共程序的读写命令采集整组滤池的反冲信息及滤池具体水位情况并发出命令。 公共程序的主要内容包括:反冲水泵风机控制程序、公共PLC与其他各单元PLC信息的读写程序和滤池排队程序。 每格滤池的工艺过程基本相同,其PLC程序结构也相同,可用子程序的形式,如图3所示。 每个滤池程序包括初始化命令及滤池的自动状态、手动状态、现场状态等程序。 滤池自动状态程序包含反冲洗状态、整理状态、正常过滤状态三个子程序。 滤池手动状态程序包含各个阀门的手动操作命令。 滤池现场状态程序主要内容包含:(1)在滤池由自动状态转到现场时已发出的命令必须全部复位。 (2)自动状态中的某些变量,如时间变量、计数器变量等必须复位。 (3)针对反冲必须在这个状态下发出一个结束反冲命令。 4.4系统监控软件本系统上位机采用Windows NT操作系统,实时监控软件选用Wonderware公司的InTouch7.0工业组态软件,它主要包含WindowMaker和WindowViewer两个程序。 上位机配备有遵循FIPWAY通讯协议的通讯网卡,实时采集生产数据。 通过监控计算机可清晰地显示滤池的过滤、等待、反冲等运行过程中动态的工艺模拟画面,可对系统的所有设备进行远程操作和控制,并具备显示工艺布置图、实时动态参数、设备的工作状态及实时/历史报警信号、在线仪表的实时/历史趋势曲线、马达运行时间等功能,同时可进行离线/在线编程及设定参数的修改,编制和打印生产与管理报表。 5 新旧系统的联网问题由于新建的滤池系统与水厂原系统是用不同公司的PLC开发成的两套独立系统,两系统的通信协议不同,它们之间没有数据通信,这给生产和管理带来一定的麻烦。 两期的监控组态软件都采用了InTouch,但所用版本不同。 从技术改造成本和公司技术力量来考虑,决定利用InTouch基于以太网并兼容TCP/IP通信协议的网络功能来实现两套独立系统的联网控制。 具体方法如下:先用交换机组建一个以太网,系统示意图如图4,并在原系统监控微机PC1和新建系统监控微机PC2上分别安装TCP/IP通信协议、NetDDE程序。 再对InTouch监控系统软件进行设茫篴. 运行InTouch的开发环境windowmaker,利用“import”功能将新旧两期程序数据整合成为一个完整的应用程序,分别安装在PC1和PC2上,这样就可以在任一台PC上对生产进行监控;b.对InTouch的DDE Access进行设置,方法是在“Modify DDE Access Name”对话框中的“DDE Application/Server Name”栏增加“\\PC2\viewer”(在PC1上)和“\\PC1\viewer”(在PC2上)。 通过这个设置,PC1和PC2就可通过以太网进行实时数据通信;c. 初始化NetDDE,运行InTouch windowviewer,PC1和PC2即可进行实时通信。 6 结束语滤池经一段时间的运行后显示出控制系统应用效果良好,系统的各项控制性能指标均能达到设计要求。 在正常情况下,本滤池水位波动被控制在设定值的±1.5cm范围内,实现了自动过滤及六个滤池自动排队和反冲洗,并间接实现了与水厂原系统的联网控制,整个控制系统的设计基本满足了生产要求,达到了预期效果。

SCADA数据采集示例:三菱PLC之MC通信协议详解

揭秘三菱PLC的MC通信协议:数据采集示例详解

三菱PLC的MC通信协议,作为工业控制领域的秘密武器,它巧妙地联接了计算机与PLC,实现了数据的无缝传输。 MC协议,是Melsec家族的独特标识,专为精准控制而生。

灵活的通信方式

通过串行通信模块C24或以太网接口模块E71,MC协议支持多种通信帧类型,如QnA兼容3C、3E帧,以及A系列和QnA系列的不同子帧,确保了与现有设备的兼容性。 以FX5U、Q系列等为例,通常使用QnA兼容3E帧,而FX3U则需要借助以太网模块配合A兼容1E帧,串口设备则可能采用2C或4C帧。

高效编码选择

在数据传输中,ASCII和二进制编码各有利弊。 二进制编码效率更高,数据量仅为ASCII的一半,从而缩短了通信时间,为实时控制提供了有力支持。

半双工通信模式

MC协议下的数据交换通常采用半双工方式,确保了请求和响应的有序进行。 在发送指令后,必须等待来自PLC的响应确认,才能继续下一个操作,确保了通信的精确性。

简单配置,深度理解

虽然MC协议的使用无需额外编程,但配置过程必不可少。 只需在PLC参数设置中调整以太网端口、通信代码和允许RUN中写入等选项,然后下载并重启PLC,即可完成基础配置。

协议帧的奥秘

深入探讨MC协议,我们以Qna兼容3E帧为例。 它由请求、响应和异常三种帧组成。 比如,读取寄存器的请求帧和响应帧具有特定格式,通过这些帧,我们可以获取到PLC的精确数据。

实战测试:读取数据示例

以读取D0到D4的5个寄存器为例,我们构建报文:副头部、网络编号、PLC编号等参数,执行后,网络调试助手显示D0-D4的值为11, 0, 0, 0, 0。 其他存储区的读写操作同样遵循此原理。

结论

通过三菱PLC的MC通信协议,我们实现了对工业设备的精细控制,每个通信步骤都至关重要。 深入了解并掌握这一协议,无疑能提升我们的自动化系统效率和可靠性。 如果你是一名PLC开发者或工程师,MC协议将成为你数字化工具箱中的重要一员。

为什么软件能影响到硬件,说出原理。

呵呵,好久不答题了,给你个好的,我们一起理解。 软件中的命令(这些命令是最初编程设计的)最终都要转化为计算机可以识别的机器语言,就是我们通常听说的,这种长串的机器代码在硬件中反映成电脉冲或电信号,在超大规模的集成电路中执行逻辑操作或运算(具体的,那就是电路知识了,最基本的原理都非常非常简单,简单的让你吃惊,即通路,断路),最终形成的现在运算速度惊人的计算机. 要理解的很清楚的话那就要求掌握多门学科的基础知识了.你不理解软件为何能控制硬件,大概是因为你觉得软件是看不见摸不着的东西,如何能够控制硬件这样有形的实体吧。 其实问题很简单,软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。 说到底软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。 就好比没有插上电源的台灯,你怎么按开关都是不会亮的。 任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。 早期电脑用人工接线输入程序,相当于用人体的力量将软件代码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。 这个问题看似简单,其实涉及到一些很底层的内容和原理。 对于一般计算机爱好者来讲,又没有办法说明白,原因就是我们从来没有考虑过电路在物理上的实现。 计算机软件说到底,不过就是一些指导电子元件工作的指令序列,那么你一定又会问电子元件为什么会按这些序列工作呢?指令序列的在电路中的实质就是一些有规律且有一定意义的电脉冲,电脉冲控制电子元件的各种状态。 工作过程非常复杂。 最简单最基本的就是几个逻辑门电路的实现:比如“或”电路,“与”电路等等。 通过将这些逻辑门电路的组合和协同,就能实现电脑整体上的运算和处理能力。 因为这是十几个数量级的基础电路的有机集合的对外的体现,如奔腾系列CPU集成了上亿个半导体元件,要想把各个元件的功能彻底认知,是非常困难的。 可以把它们比作每个人的活动合在一起就构成了社会有单位,有抽象 正如抽象的生活用电网络,可以将一个用电器作为抽象单位,也可以将一个家庭作为抽象单位,一个抽象单位连接入网络,具体的接入方式,抽象单位完全本身实现,理想情况下每一功能模块即抽闲单位,都有接口,成为网络的一部分,向新的部分提供接口,理想情况下家庭电路有接口模块,可以任意扩展;每一但单元都有进出,任意个连接组合,总的单位也有进 和 出软件可以发送命令 让cpu的某一引脚 发出高低信号 从而控制硬件我对程序的思考我也曾遇到过这样的问题,困惑了好长时间。 每每到网上看, 都说的不是我想要的问题,或者说是组成原理书上有讲呀什么的。 现在我明白了, 是按自己的想法明白 ,希望像我困惑过的正在困惑的能在这里得到答案,对你有所帮助软件如何控制硬件呢??(以下仅是我个人理解, 不保证正确, 如果错的希望能得到您的指点。 。 先谢谢)大家都知道。 没有软件的硬件就是一堆废铁或“砂子”。 您也知道cpu中有个叫做译码器的东东吧,您也知道我们写的程序要经过编译呀, 汇编呀,连接呀。 最后生成可以被硬件执行的二进制。 可是问题来了,硬件能认识个啥二进制。 这里也许是你不懂的地方。 其实解释的关键也就在这里了。 高低电压。 脉冲的有无控制硬件您能够接受吧,而我们写的程序(软件)其实都是以高低电压,脉冲的有无存储在磁盘上。 或者以有无反射的形式存在光盘上。 所谓的机器可直接执行的代码, 也就是二进制,译码器能理解。 他能理解。 cpu就能理解。 cpu按照硬件设置和硬件特性,选择switch(也就是让哪一条导线是通路),以达到控制硬件。 (能理解吗, 如果你还有什么疑问留言吧, 针对性解决可能会好点,)实际上计算机把相当复杂的问题最终都会转化成加法(ALU)来实现,(太神奇了,我还理解不了。 但我知 道,呵呵,这样有助于理解。 软件是如何控制硬件的软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。 说到底软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。 就好比没有插上电源的台灯,你怎么按开关都是不会亮的。 任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。 早期电脑用人工接线输入程序,相当于用人体的力量将软件代码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。 这个问题看似简单,其实涉及到一些很底层的内容和原理。 对于一般计算机爱好者来讲,又没有办法说明白,原因就是我们从来没有考虑过电路在物理上的实现。 计算机软件说到底,不过就是一些指导电子元件工作的指令序列,那么你一定又会问电子元件为什么会按这些序列工作呢?指令序列的在电路中的实质就是一些有规律且有一定意义的电脉冲,电脉冲控制电子元件的各种状态。 工作过程非常复杂。 最简单最基本的就是几个逻辑门电路的实现:比如“或”电路,“与”电路等等。 通过将这些逻辑门电路的组合和协同,就能实现电脑整体上的运算和处理能力。 因为这是十几个数量级的基础电路的有机集合的对外的体现,如奔腾系列CPU集成了上亿个半导体元件,要想把各个元件的功能彻底认知,是非常困难的。 可以把它们比作每个人的活动合在一起就构成了社会.计算机是数字电路,数字电路是靠1,0来控制电路的.起到电流还有脉冲作用.像你键盘上敲个周字一样.同是由一大一串的.来产生脉冲电流对硬件发出指令的就是运算这些数据.然后发出机器语言指挥其它硬件工作的.

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论