×

基于Arduino、PLC的水处理厂SCADA

消耗积分:0 | 格式:zip | 大小:0.05 MB | 2022-10-24

张玲

分享资料个

描述

 

pYYBAGNVjUGARV4fAACBMYrlnEo132.png
 

 

抽象的

PLC技术“编程控制系统”是当今工厂和工业中一种非常有趣且至关重要的现代自动化类型。由于这项技术在几十年前就出现了,但它仍然是世界上最常用和最实用的控制系统之一。

SCADA“监督控制和数据采集”是一种控制系统架构,包括计算机、网络数据通信和图形用户界面,用于对机器和过程进行高级监督。

如今,几乎所有简单和复杂的行业都有这些类型的自动化,任何工厂的两个主要部分是这里使用PLC实现的控制系统和这里由基于计算机的SCADA系统设计的监控或操作部分。

我们可以将此项目应用于任何水处理厂,它是基于其传感器类型的原型,但如果使用工业传感器,我们可以控制大规模的水过滤或处理厂。

该项目设计为三层,第一层是控制层,传感器收集所有物理数据,如液位和温度,并将它们组合在一起并通过工业协议发送到 PLC,第二层是数据处理和执行的控制层。 PLC 内部的逻辑 所有根据IEC 61131-3 编写的逻辑和监管层都是通过使用工业协议和SCADA 系统来完成的,以将数据显示给远程控制站中的操作员。

该项目是对大型实际工业项目的模仿,我们可以使用此设计来配置和操作甚至维护和排除大型项目的故障。想要从事这个项目的学生将收集到足够的知识,在他的真实工程生活中成为一名优秀的工程师。

缩写

  • PLC可编程逻辑控制器
  • IDE 集成开发环境
  • USB 通用串行总线
  • SCADA 监控和数据采集
  • K1 泵 1 继电器
  • K2 泵 2 继电器
  • L1-L2 超声波液位传感器 1 和 2
  • LPS 低压开关
  • RTD电阻温度检测器
  • 肌电图紧急
  • RS485 是定义用于串行通信系统的驱动器和接收器的电气特性的标准。
  • RS232 推荐标准 232 是最初于 1960 年引入的用于数据串行通信传输的标准。
  • HMI人机界面
  • Modbus Modicon(现为施耐德电气)总线
  • RTU 远程终端单元
  • TIA Portal 全集成自动化
  • LCD 液晶显示器
  • ACK 确认
  • TT 温度变送器
  • NO-NC 常开 – 常闭

介绍

可编程逻辑控制器 (PLC) 或可编程控制器是一种工业计算机,经过加固和调整,可用于控制制造过程,例如装配线、机器、机器人设备或任何需要高可靠性、易于编程和过程故障诊断的活动. 迪克莫利被认为是 PLC 之父,因为他在 1968 年为通用汽车公司发明了第一台 PLC,即 Modicon084。

PLC 的范围从具有数十个输入和输出 (I/O) 的小型模块化设备,与处理器集成在一个外壳中,到具有数千个 I/O 的大型机架式模块化设备,这些设备通常与其他 PLC 和 SCADA 系统联网。

问题陈述

当今行业竞争力的高度提高需要具有竞争力价格的高质量和最稳定的产品。为了应对这一挑战,许多行业都在考虑各种新产品设计和集成制造技术,同时使用自动化设备。

获得上述挑战的解决方案的显着且有影响力的举措之一是工业自动化。工业自动化有助于提高产品质量、可靠性和生产率,同时通过采用新的、创新的和集成的技术和服务来降低生产和设计成本。

自动化更进一步的机械化,使用特定的机械机制辅助人类操作员执行任务。机械化是使用取决于人类决策的动力机械手动操作任务。

另一方面,自动化通过使用逻辑编程命令和强大的机器取代了人类的参与

工业自动化是用计算机和机器代替人类思维。自动化一词的含义是“自我指示”或“一种机制自行移动”,源自希腊词 Auto 和 Matos,其中 auto 表示自我,而 Matos 表示移动。

简而言之,工业自动化可以定义为使用成套技术自动控制装置,实现工业过程的自动运行和控制,无需大量人为干预,并获得优于手动控制的性能。这些自动化设备包括PLC、PC、PAC等,技术包括各种工业通信系统。

客观的

集中式水处理厂基于混凝、絮凝和消毒过程,被发现在处理大量水时最具成本效益。然而,它们需要大量的基础设施成本,这在发展中国家的农村地区难以筹集,并且通常使用政府资金进行安装。因此,集中处理只存在于发展中国家的大都市,主要惠及城市人口。水到集中处理厂和从处理厂到个别家庭的运输成本是另一项主要费用,将其收益限制在远离处理厂的地区。

因此,集中处理厂一般安装在淡水资源(河流湖泊)附近,使生活在这些水体附近的人们受益。

项目意义

WaterTreatment Plants 处理来自不同水体的水并对其进行净化,使其适合饮用以及其他日常活动。水处理厂从水中去除化学物质、颗粒物、有机物以及其他杂物并处理水,从而产生可用于烹饪、清洁等的清洁饮用水。水处理厂从事净化水并使其适用人类消费确保防止任何短期或长期的健康风险,因为污染的水的不利影响。

项目范围

该项目的主要目标是使用 PLC 和 SCADA 系统开发学生出勤率。该项目将涵盖四个范围。首先是设计和实施水处理厂的理念,专门做布线和修复设计的故障,其次是习惯梯形图编程等PLC逻辑,第三是了解如何使用Modbus等工业协议,最后设计并实现了一个将所有这些方面结合在一个屏幕中的 SCADA 系统。

理论框架:

XG5000 Ls PLC软件:

LS Industrial Systems (LSIS) 是韩国领先的 PLC 制造商。用PLC系列分为许多不同的段。从紧凑型PLC到模块化PLC,LS IS越来越多地出现在工业化市场。

今天plc247.com想和大家分享一下XG5000软件,用于对一些LS PLC进行编程,包括:

+ XGT:XGK CPUU、XGK CPUH、XGK CPUA、XGK CPUS、XGK CPUE、XGI 系列、XGR 系列。

+ XGB、XGT 系列:XBM、XBC、XEC。

poYBAGNVjUOAC67ZAAB9RYYCkhE732.png
XGB 5000 接口
 

2. TIA Portal(WinCC) SCADA软件:

借助全集成自动化门户 (TIA Portal),您不仅可以集成基本软件(SIMATICSTEP 7、SIMATIC WinCC、SINAMICS Startdrive、SIMOCODE ES 和 SIMOTIONSCOUT TIA),而且还可以通过诸如 TIA Portal Multiuser Engineering 和通过单一界面使用 SIMATIC Energy Suite 进行能源管理。这就是使 TIA Portal 不仅仅是一个工程框架的原因。

poYBAGNVjUaAPPnrAACbh3LfbjM874.png
TIA Portal WinCC 接口
 

3. Modbus MasterData 扫描仪:

ModScan是一个作为 modbus 主机运行的 Windows 应用程序。它允许您使用 RTU 或 ASCII 传输模式访问和更改连接的从设备中的数据点。ModScan 非常适合对 modbus 协议进行快速简便的一致性测试,其内置的串行流量显示允许有效地排除现场连接故障。

pYYBAGNVjUiAWuHzAACY8CuLOIY510.png
Modbus 主接口
 

4. Arduino IDE:

开源的 Arduino 软件 (IDE) 可以轻松编写代码并将其上传到开发板。该软件可与任何 Arduino 板一起使用。

有关安装说明,请参阅入门页面。

源代码

Arduino 软件的积极开发由 GitHub托管。请参阅构建代码的说明。最新发布的源代码档案可在此处获得。这些档案是 PGP 签名的,因此可以使用这个gpgkey 对其进行验证。

pYYBAGNVjUqAHbBGAAA9YPxrPc0944.png
Arduino IDE 接口
 

2.2 实用框架

1.阿杜诺:

是一个用于构建电子项目的开源平台。Arduino 由一个物理可编程威廉希尔官方网站 板(通常称为微控制器)和一个软件组成,或在您的计算机上运行的 IDE(集成开发环境),用于将计算机代码写入和上传到物理板。Arduino 平台在刚开始接触电子产品的人们中非常受欢迎,并且有充分的理由与大多数以前的可编程威廉希尔官方网站 板不同,Arduino 不需要单独的硬件(称为编程器)来将新代码加载到板上 - 你可以只需使用 USB 电缆。此外,Arduino IDE 使用 C++ 的简化版本,更易于学习编程。最后,Arduino 提供了一个标准的外形尺寸,将微控制器的功能分解为更易于访问的封装 (1)。

poYBAGNVjU2ADPirAAHhSJ0HOi4132.png
Arduino UNO
 

Uno 是 Arduino 家族中比较受欢迎的板子之一,也是初学者的绝佳选择。我们将在本教程后面讨论它的内容以及它可以做什么。

1)超声波传感器 HC-SR04

UltrasonicSensor HC-SR04 是一款可以测量距离的传感器。它会发射 40 000 Hz (40kHz) 的超声波,该超声波在空气中传播,如果其路径上有物体或障碍物,它将反弹回模块。考虑到传播时间和声音的速度,您可以计算距离。

HC-SR04 的配置引脚为 VCC(1)、TRIG (2)、ECHO (3) 和 GND (4)。VCC 的电源电压为 +5V,您可以将 TRIG 和 ECHO 引脚连接到 Arduino 板上的任何数字 I/O。

pYYBAGNVjVCARKHnAABRn8nuVxM727.png
HC-SR04
 

2)液晶显示器 (LCD)

液晶库允许您控制与 Hitachi HD44780 驱动程序兼容的 LCD 显示器那里有很多,你通常可以通过 16 针接口告诉他们。

在 16x2 LCD 上输出草图

LCD 具有并行接口,这意味着微控制器必须同时操作多个接口引脚来控制显示器。该接口由以下引脚组成:

一个寄存器选择 (RS) 引脚,用于控制您在 LCD 内存中写入数据的位置。您可以选择保存屏幕内容的数据寄存器或指令寄存器,这是 LCD 控制器查找下一步操作指令的地方。

一个读取/写入(R/W)引脚,用于选择读取模式或写入模式

启用写入寄存器Enablepin

8个数据引脚 (D0 -D7) 这些引脚的状态(高或低)是您在写入时写入寄存器的位,或者是您在读取时读取的值。

还有一个显示对比度引脚(Vo)电源引脚(+5V 和 GND)LEDBacklight(Bklt+ 和 BKlt-)引脚,可用于为 LCD 供电、控制显示对比度以及打开和关闭 LED 背光,分别。

pYYBAGNVjVKAd8QVAABpK8kqdo0748.png
16x2 液晶
 

3) MAX485 TTLRS485

poYBAGNVjVSAKZarAAA9mYbpLts564.png
RS485模块
 

RS-485 是一种异步串行通信协议,因为没有与数据一起传输的同步时钟信号。RS-485 使用差分信号将二进制数据从一个设备传输到另一个设备。差分信号通过使用5V正负产生差分电压来工作。这种差分信号方法具有抑制共模噪声的优势。

RS-485 支持的最大数据传输速率为 30 Mbps。RS-485 还支持具有单个主站的多个从站。RS-485 协议最多可以连接 32 个设备。

在这个项目中,我们将使用 MAX485 模块在两个 Arduino 之间的通信中实现 RS-485 协议。该模块使用 5V 作为操作

poYBAGNVjVaAALNuAAB32egB9WU247.png
RS485 模块引出线
 

电压并具有如下表所示的引脚配置。

RS-485 模块作为发射器

为了用作发送器,RE 脚和 DE 脚必须接 5V,DI 脚接 TX。数据从 Arduino TXpin 发送到模块 DI 引脚,然后数据将通过 AB 发送。

RS-485 模块作为接收器

为了用作接收器,RE 引脚和 DE 引脚必须连接到 GND,RO 引脚连接到 RX。AB 接收到的数据将被发送到连接到 Arduino RX 引脚的 RO 引脚,以便 Arduino 可以读取数据。

RS-485 可以实现为三种类型的串行通信系统:单工、半双工和全双工。但是在这个项目中,我们只实现了单工和半双工。

2.PLC _

1)特点

XGB系统的特点如下。

(1) 系统保证以下高性能。

(a) 处理速度快

(b) 最大。支持中小型系统实施的384I/O控制

(c) 足够的方案能力

(d) 支持浮点的扩展应用

pYYBAGNVjViAN5UNAABUHpSBNrk308.png
XGB PLC 特点
 

2)输入输出接线术语

接收器逻辑

对于汇逻辑,NPN 晶体管为电气负载提供接地路径。为了使 NPN 晶体管威廉希尔官方网站 工作,它必须连接到 PNP 晶体管威廉希尔官方网站 。换言之,接收逻辑威廉希尔官方网站 需要连接到源逻辑威廉希尔官方网站 。

图 1 显示了连接到源数字输入的漏数字输出。输入威廉希尔官方网站 连接在正电源侧 (Vcc) 和 NPN 晶体管之间。

源逻辑

对于源逻辑,PNP 晶体管为电气负载提供电压路径。要使 PNP 晶体管威廉希尔官方网站 工作,它必须连接到 NPN 晶体管威廉希尔官方网站 。换言之,源逻辑威廉希尔官方网站 需要连接到接收逻辑威廉希尔官方网站 。

图 2 显示了一个源数字输出,它连接到一个漏数字输入。输入威廉希尔官方网站 连接在 PNP 晶体管和电源 GND (0v) 之间。

poYBAGNVjVuAUmkuAADZUmPLOuc566.png
漏极和源极接线
 

3) XBG系统配置

XGB 系列系统配置如下。扩展 I/O 模块和特殊模块可用于

“S”型最多连接7级,“H”型最多连接10级。可扩展通信模块

最多连接 2 个阶段

pYYBAGNVjV6AXz2oAAFKgufKpeg119.png
XGB 系统配置
 

4)下载线

pYYBAGNVjWCAWaRnAABAGaHVYq8405.png
 

PLC 通信可能需要从 RS232 串行到 Micro USB 到 Cat5e 以太网的各种电缆和连接。一系列专用 PLC 通信电缆可用于 PLC 编程和 I/O 扩展。由于 CPU 提供了许多不同的通信端口可能性,因此准确了解所需的通信电缆会很有帮助。LS PLC XGB 系列 PMC-310SLoader 电缆连接电缆(PC 到 PLC),9pin-6pin。

由于这种特殊电缆不可用,替代选项使用 USB 作为下载电缆

poYBAGNVjWKATrtSAAA5Ymak1Cg341.png
 

5)部件名称和功能

poYBAGNVjWWACGgWAAHx2y53GYU260.png
 

项目理念

首先这个项目设计为水处理厂的一部分,如下图所示,我们在这个项目中有两个主要的水箱,左边的水箱叫做 Tank1,右边的水箱叫做 Tank2,所有的过程都将使用tank1 喜欢联邦和水平控制。关于右边的储水箱,我们可以将处理后的水储存在Tank2中以供进一步使用。

pYYBAGNVjWeAHOD3AAAkfWh0bbE079.png
作为内置图和示意图
 

水平计算

我们使用了两个超声波传感器来计算每个罐的液位,因为 PLC 没有任何模拟输入,我们添加了这些传感器来为我们的项目及其稳定性和敏锐度添加更多选项。

pYYBAGNVjWmAaVIrAAAuNLGAp1A879.png
超声波液位传感器
 

最终安装如下所示

poYBAGNVjWuAdlDzAAAiWulUmVQ081.png
超声波液位传感器安装
 

1号传感器在内置图纸上称为Level1或L1,它位于水箱1上以测量其液位,L2是水箱2的液位变送器。根据PLC内部的逻辑,L1确保水箱1充满水在开始过滤过程之前,L2 确保在启动泵之前我们有水。这两个传感器也参与关闭泵。当水位变浅时,PLC 内部的一些计时器开始计算特定泵的转动。

水循环过程

pYYBAGNVjW6AK0ViAAA6m9l1BIk159.png
循环泵安装
 

水循环过程是该项目的关键部分之一,我们使用了两个泵来填充或从水箱中吸水,它们的位置如下图所示

连接到 Tank1 的过滤器及其泵是该项目中可用的主要处理单元,它们有一个低压开关或 LPS,它可以防止泵在处理阶段在没有水的情况下工作。

poYBAGNVjXCAJeoXAAA-ee6B7Yg187.png
过滤泵、过滤器和 LPS
 

本地控制面板

任何工业工厂都应该有一个本地控制面板,可以控制现场的一些处理选项,因此在这种情况下,我们添加了这样一个很酷的控制面板,以便在没有 SCADA 系统的情况下提供本地控制过程的选项,我们可以通过选择远程或本地过程来选择SCADA 主屏幕上的远程开关。

poYBAGNVjXKAKU6VAABR1elQOYY114.png
本地控制面板
 

这个怎么运作

plc 不断检查所有传感器,如果没有紧急情况或错误,将准备好执行。紧急按钮的好处是用于对整个工厂进行呼喊,并在紧急情况下一直处于警报状态,直到紧急情况到达其正常位置。确认按钮可用于重置 PLC 内的所有程序,如定时器和其他代码。RUN 指示灯显示正在执行的过程,但报警指示灯以不同的闪烁速度显示错误和紧急情况。通过使用选择器,我们可以选择过滤过程或在选择适当的过程后重新填充,我们可以按开始执行逻辑并停止以取消逻辑,即使在过程中间也是如此。

PLC会按照里面的逻辑这样工作

  • · 检查 Tank1 中的水位
  • · 检查选择器位置
  • · 检查 SCADA 的远程/本地状态
  • · 如果选择了本地控制并且没有警报,泵将启动
  • · 1.5 分钟后,PLC 将检查 LPS 的压力
  • · 2.5 分钟后,PLC 将关闭泵并运行泵1
  • · 当 Tank1 中的液位达到浅水位时,泵 1 将关闭
  • · 如果选择器处于 Refill 位置并且操作员按下开始
  • · PLC 将储罐排至 Tank1
  • · 如果 PLC 温度超过 35C 的限制,冷却风扇将启动

5. 温度 – fandiagram

该风扇旨在防止 PLC 过热,并由连接到 Arduino 的 TT 温度变送器控制,所有数据通过 Modbus 协议传输到 PLC 以控制风扇,如果温度升至 35C 以上,它将运行冷却风扇并如果温度低于或将低于 35 Cit 将关闭它。

pYYBAGNVjXSARNQzAAAqQ1AS3pI735.png
TT & Fan示意图
 

PLC 转 SCADA RS-232

仅使用 3 个引脚将 PLC 与 PC (SCADA) 连接

pYYBAGNVjXaASjJ6AAAq1VUNsp4817.png
RS232 转 USB 电缆
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'基于Arduino、PLC的水处理厂SCADA',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);