浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
荆门西门子电缆6XV1840-2AH10

用过西门子PLC和HMI的工程师都知道,组态HMI离散量报警,以word型触发变量举例,大概是以下过程,

        1.  PLC程序中一条报警触发word中的某一位(一个word 16个位,可以做16条报警)

        2.  在HMI变量中添加该word变量,为每个触发位组态报警文本。

        如果是标准设备或功能,我们可以在标准块中专门写好相应的报警程序,使用时PLC侧批量调用功能块,HMI侧批量添加触发变量,相同设备的报警文本都一样。

        但实际编程过程我们经常遇到需要临时添加一些报警或提示的情况,这也是标准块无法涵盖的。这时候我们就需要通过以上两步新增报警,看似简单,但报警多了,就需要我们频繁修改和下载HMI组态,很费时间。 

        笔者摸索出一套方法,可以灵活组态报警,算是高效编程的一个小技巧,具体如下:

 

1.首先我们新建一个FB,并声明接口变量,

在Input接口声明16个bool型变量

 

    在静态变量区声明以下内容

 2.编写FB程序,过程如下

    1. 将Input管脚bool变量汇总成word,作为HMI离散报警触发变量。

    2. 读取Input管脚变量名称作为HMI离散量报警文本。(这一段在FirstScan或程序更新时才执行,以节省扫描时间)

 

***后出来FB长这样,

用LM7805的恒流充电电路图和原理解析
图中是一款采用三端固定正输出集成稳压器7805作为恒流源的恒流充电器电路图,可以为两节镍氢充电电池充电,充满后指示灯自动熄灭。

LM7805的恒流充电电路图 电池充电电路图 
1.电路工作原理。充电器电路由整流电源、恒流源、充电指示电路等部分组成。①集成稳压器7805与R4、R5、R6、R7分别构成50mA、100mA、150mA、200mA恒流源,由开关S进行选择,以适应不同容量电池充电电流的需要。两节1.2V镍氢充电电池串联接人电路进行充电,二极管VD6的作用是防止被充电池电流倒灌。②晶体管VT1、VT2、发光二极管VD5等组成充电指示电路,充电开始时,因为被充电池电压很低,VD6正极电位也较低,不足以使VT2导通,VT2截止,VT1导通,VD5发光指示正在充电。随着充电的进行,VD6正极电位逐步上升。当被充电池充满电时,VT2导通,使VT1截止,VD5熄灭。③变压器T、整流桥VD1~VD4、滤波电容C1等组成整流电源,为充电电路提供约12V的直流电源。

2.调试与使用。
主要调试充电指示灯的熄灭电压。1.2V镍氢充电电池刚充满电时约为1.4V,因此可用1.4V直流电压暂接入被充电池位置,调节R3使VD5刚刚熄灭。也可装上两节放完电的镍氢充电电池,用10小时率常规电流充电14~16小时后,调节R3使VD5刚刚熄灭。使用时一般用10小时率电流充电,例如,对于500mA左右的镍氢充电电池,将S置于50 MA挡进行充电;对于1000mAh左右的镍氢充电电池,将S置于100mA挡进行充电;对于1500mAh左右的镍氢充电电池,将S置于150mA挡进行充电;对于2000mAh左右的镍氢充电电池,将S置于200mA挡进行充电。充电时指示灯VD5亮,当VD5熄灭时表示电已充满。

3.HMI侧组态如下

 

 

   

 4.测试效果如下

 

        原理很简单,主要利用了HMI离散量报警文本中可以添加文本变量的特点,PLC中报警触发的同时,将该报警变量的变量名读出来作为报警文本。这样一来,哪边需要做报警或提示,直接将触发变量写好,拖到我们报警FB管脚即可,HMI侧不再需要任何组态和下载。

        本例是以word类型作为触发变量,一个FB***多带16个报警。超出16个的话有两个方法,***重复调用FB。第二,以word数组作为触发变量,这样可以在HMI性能允许内任意扩展报警条目。


发布时间:2023-10-26
展开全文
优质商家推荐 拨打电话