| 作者 | 主题 |
|---|---|
|
3DD15 游侠
经验值:530 发帖数:32 精华帖:2 |
楼主
主题:我店里 基于S200 PPI总线的应用
笔者是一个家电维修工作人员,平时修修电器,在接触到西门子工控产品后,被它独特的魅力吸引,在通过深入的研究后发现西门子的PPI总线系统非常优秀,通俗易懂,通过简单的几个指令就能在网络里 传递数据。笔者之前学过单片机,以单片机调试的方式,通过逻辑分析仪观察PPI总线,发现PPI总线是一个令牌循环的网络,只要令牌在谁手里,谁就有总线的发话权,它将可以访问S200系统里几乎任何地 址的数据。之前也有通过单片机和MicroWin通信成功,能够在MicroWin里找到单片机。S200的CPU224和226有2个通信口,比其他牌子的PLC更人性化,可以用一个端口负责外部需要RS485通信的机器, 比如变频器,通过编写合适的驱动程序,2条线就可以解决不少问题,这样就可以省掉很多IO端口,用有限的输出端口去做更有用的事情。
这是我店里的S200控制系统,它基于S200强大的PPI总线,笔者将每个CPU分配了独立的任务,通过主站PPI协议的NETR和NETW指令,主站分别读取和写入每个从站指定地址的缓冲区,每个站都可以通过网络传递一个命令给主站,主站再根据此命令,发送到受控制的站里,被控制的站解析命令后执行相应的操作。在PPI网络里,他们之间相互关联,相互共享数据。 先说说3号站吧,它有3个任务,1:大门左侧的门状态检测和大门的开关,2:负责大门左侧的照明控制, 3:负责4个PTC温度探头,它们转换为主站需要的温度实时值,在WinCC里显示实时的温度曲线,方便我平时制冷系统的维修检测。如下图:红色这条线是一台电冰箱工作12小时后采集到的趋势图,线条平滑,有规律,说明制冷系统工作稳定,没有堵塞的现象,电冰箱可以交给客户。之前没有它,都是通过简易的温度表观测,无法得到准确的工作状态。 再说说5号站,它负责3个任务,1:电力调度 2:视频监控系统协调,3:远程手机控制(我的大门可以在千里之外用手机打开),笔者在这里讲一下交流参数的采集和分配,5号站读取电力参数:电压,电流,有功功率,和视在功率,以及频率等参数。在CPU224XP的I0.0引脚引入一个市电的同步脉冲,在INT0程序里初始化TIMER0,然后由EM231负责采集瞬时电压和瞬时电流, CPU224XP的TIMER0启动后,中断处理程序以每1ms采集一个点,在定时器中断处理程序将它们保存至一个缓冲区,每个周期20个采样点结束后,再由主程序去进行计算。将它们通过平方和计算,再平均,开方。就得到了真有效值,即rms值。算好后,通过PPI总线传回给上位机系统,就能够显示当前的市电状态了,如图中显示的220V市电电压和52.5V的电池电压,这样,无论在总线里的哪个位置,WinCC都能看到它。也可以通过主站将参数传递给任何需要此参数的从站,比如6号从站的控制系统,当市电电压不正常时会自动启动逆变系统或使用另外一组电源,执行相应的操作。
还有就是通过PPI总线连接,减少了很多布线的麻烦,原先每一个传感器都得单独拉一条线到CPU,日后的维护很是麻烦。通过PPI总线连接,将传感器练就到最近的CPU上,然后再通过网络传递给需要此信号的站,大大的减少了布线的复杂,而且在某些场合,电缆会经常来回运动,动久了就会折断,每增加一条线就是增加一个隐患。通过总线就能很好的解决这个问题。 这点在我的控制系统里得到了最大程度的发挥,如上图。笔者将大门左侧和右侧分别安装了2个CPU222,分别采集大门两侧的感应器和控制两侧的照明线路,2号主站检测在大门两侧CPU传递回来的门状态,两个都打开后认为大门已经打开,执行相应的操作,灯该开的开,该关的关,我的仪器,维修台,测试台电源也自动的打开,非常的方便。它们还连接到防盗系统,等等。 如果没有西门子PPI总线系统,许多细节的东西得由单独的CPU去执行,CPU将非常辛苦甚至无法完成。有了PPI网络,主站只需要负责采集现场的状态即可,一切都迎刃而解! |