技术论坛

 回复:TIA 自制普通电机块

返回主题列表
作者 主题
Mr S
侠圣

经验值:3717
发帖数:478
精华帖:1
楼主    2017-10-25 16:15:15
主题:TIA 自制普通电机块 精华帖  精编帖 

将自己使用的电机块的程序分享出来,欢迎指点。

功能:程序在远程模式下使能,远程分手动和自动方式。具有空开、故障、启动失败报警(适用于有或没有故障信号的情况);电机状态字可用于上位自作电机的多状态显示,每台电机的数据采用UDT打包方式,便于编程。


  1. 普通单向电机块FC100变量定义  

  


2. FC100 程序






3.UDT


4.调用。这里的M2.5是一个瞬间脉冲。


5. 电机DB



永无止境!
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
1楼    2017-10-25 18:52:38
精编帖  主题:回复:TIA 自制普通电机块

 

抱歉,我前面说的有问题,现更正:


#auto和#man信号如果来自一个三位自锁旋钮的话,输出是会断;

但如果是通过一个二位旋钮,或者是通过HMI修改的内部变量的话,自动改手动,输出不会断,手动改自动,要看自动指令的状态,确定输出是否会断。


这里有逻辑的的不确定性


这段涉及编程的进一步的思维逻辑


自动启停也好,手动启停也好,其本质是不同的来源的启停指令,其程序作用是一样的,但楼主却使用了两种逻辑来做同一件事情,这是简单逻辑还好做,但是复杂逻辑控制要实现就显得杂乱了。

再抛个小砖哈。


 

Zane 注册自动化系统工程师 Always save before download
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
2楼    2017-10-25 19:00:41
精编帖  主题:回复:TIA 自制普通电机块

 


既然有START FAILED,那也会有STOP FAILED。


出错判断时间,调节不灵活,不如直接用定时器,但却是个FC。


电机的状态逻辑也是不甚合理。


究竟用FC好,还是FB好?抛个砖了,谁接?



 

Zane 注册自动化系统工程师 Always save before download
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
3楼    2017-10-25 20:42:09
精华帖  精编帖  主题:回复:TIA 自制普通电机块

我认为FB好,电机 控制所需要的数据全部封装在一个UDT(博图叫PLC数据类型,个人还是喜欢叫它UDT)里,

FB添加静态变量,数据类型为UDT里做控制程序,如果有多个电机 按照功能 把相似的,通过多重背景再 整合一个FB里。

人生就像一场旅行!
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
5楼    2017-10-25 21:55:17
精编帖  主题:回复:TIA 自制普通电机块

 还有,楼主的遥控与本地操作,个人理解应该是遥控是通过PLC控制的,本地操作就是硬线回路的直接手动操作。


但现在还有一种是本地是PLC控制,遥控是中控室指令控制,后者现在似乎用得跟多一些了。


但不管怎样,楼主的本地/遥控的切换,显得简单粗暴了一些尤其是作为第一种类型的切换。比较安全的做法是设备进入停机状态后才允许切换,运行中切换无效。

Zane 注册自动化系统工程师 Always save before download
Mr S
侠圣

经验值:3717
发帖数:478
精华帖:1
7楼    2017-10-25 22:31:24
精编帖  主题:回复:TIA 自制普通电机块

我想问的是比如我把FC100改成FB100,DB100作为FB100的背景DB,那么FB100调用的实参还是要使用DB1,这样DB100是不是多余了呢,有什么好处?

使用FC100,只需要一个DB1,而使用FB100至少需要两个DB块(DB1存放电机实参,DB100作为多重背景DB)

永无止境!
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
10楼    2017-10-26 08:53:01
精编帖  主题:回复:TIA 自制普通电机块

为什么还要DB1了,你控制程序全部放在FB的静态变量里好了,最多做几个接口 给电机的控制与运行信号,断路器合闸等信号就行啊  ?

人生就像一场旅行!
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
12楼    2017-10-26 09:06:47
精华帖  精编帖  主题:回复:TIA 自制普通电机块

我也传一段 ,我们正在用的电机标准功能块,由于公司刚刚全面升级到1500,所以程序没进行大的改动还是用STL 编写的,同时 ,由于采用的Softing OPC与1500进行通讯,限于Softing,没有采用优化块的访问方式
电机控制FB块,SSW_EL_Motor_Fct;电机的UDT:SSW_EL_Motor_EL;

由于功能做的太全,代码太多,我就以附件的方式上传吧,大家互相学习一下

1:截图1,电机控制的FB的数据定义接口部分,就只有一个UDT类型静态变量和部分临时变量;

2:UDT类型截图,比较多




SSW_EL_Motor_EL.zip                  //UDT


人生就像一场旅行!
Mr S
侠圣

经验值:3717
发帖数:478
精华帖:1
14楼    2017-10-26 09:48:45
精编帖  主题:回复:TIA 自制普通电机块

感谢Letham斑竹的分享,程序下载下来慢慢研究。

由于在论坛里很少看到分享电机功能块程序的帖子,而电机功能块又是最最常用的,因此发这个帖子的本意是想抛砖引玉,现在看来,我这个砖抛的还是很有价值,至少玉(Zane斑竹和Letham斑竹)已经现身了,诸位大师的指点,受益匪浅。

让我很庆幸的是Zane斑竹和Letham斑竹两位大师级人物能在百忙之中对我这篇菜鸟级帖子指点一二,不胜感激。


另外,有个问题请教Letham斑竹。SCL、DB、UDT的源可以直接导入TIA,那么STL的txt文件是如何导入到TIA的呢,求赐教?

永无止境!
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
17楼    2017-10-26 18:15:02
精编帖  主题:回复:TIA 自制普通电机块

 看了楼主和Letham版主的程序贴图,前者是FC+DB,但DB是设置为不保持的,后者是FB,但所有变量都设置为保持的;


断电重启后,该功能块的输出是做如何反应,二位能否说明一下?

Zane 注册自动化系统工程师 Always save before download
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
20楼    2017-10-26 21:03:56
精编帖  主题:回复:TIA 自制普通电机块

压力好大 ,类容太多啊 ,挑重要的说吧

电机控制功能块整合了 单方向单速度,单方向双速度,双方向单速度,双方向双速度 以及变频控制等控制模式,以及KPI等统计信息,通过参数选定控制方式

St开头代表状态,Inp代表输入,Oup代表输出,Par代表参数,Cmd代表命令,Out内部程序内部一些输出信号;


StCode:电机状态码 分2部分(Byte),一部分为控制方面的信息,一部分为电机当前状态,此字有PLC进行汇总,由上位机进行解析,比如当StCode的X8=1(手段控制).X3=1(低速正转)

InEnableRev/Fwd:自动状态下允许电机反转/正传,当InEnable=1(恒定为1),CmdNext=1(脉冲信号),InLocal=0,InseqStop=0时,电机自动根据控制方式运行;

InSlow:速度模式1=低速;0=高速

InSaftyStop:安全停车控制,外部给信号;

InpRunSlow/Fast:低速/高速运行反馈信号

InpRunRev/Fwd:反转/正转返馈点

InpFaultDev:过载或者变频器等故障信号

CmdOff/on:手动状态下停止/启动电机

CmdNext:自动状态下启动电机

CmdFaultReset:故障复位

CmdNewJob:新任务命令

InLocal:没有任务状态,次状态下,电机不会报警,电机i也不会启动,即便有启动命令收到

InManual:1=手动

InReport:电机状态变化时需要像上位机报告

InSeqstop:自动状态下,空转时间走完后,开始顺序停机

InHwStop:急停等信号

InDpFault:DP/PN 通信故障

OutIdling;正在空转

OutPRunSlow/Fast:低速/高速 控制点

OutPRunRev/Fwd:正转/反转控制点

OutpFaultReset:故障复位输出点,比如某些安全回路,故障消失后,必须有复位信号

OutSpeedTar:目标速度

OutSpeed:实际速度

OutLoadAct:实际负载

StStopped等,当前电机状态

InForce:强制状态,=1时,电机不会根据实际信号来判断,控制命令是什么,电机就是什么状态(中国市场定制)


InpIsolated:电机主回路上的维修开关等信号

InpOverload:断路器上电等信号

InpService:维修模式

InFaultRemote:变频控制时使用,变频器控制等信号

OutStartRequestMan/Auto;手段/自动控制模式下,启动请求信号

OutFaultDev/Service :故障原因

OutTimeStarted/faulted:运行/故障时间 用于OEE分析

OutCntStartup/fault;启动次数/故障次数

OutPowerConsumption:消耗电能

ParPObjectNo:电机对象代码。每个设备都有唯一的对象代码

ParHornCode:电机报警对应的喇叭

ParLogOff:关闭汇报功能

ParManual:允许手段运行,=0时,手动状态下,开不起来电机

ParRestartDelay:=1时,电机在停止中 状态时,不允许再起启动,必须等到完全停止状态

Par2Speed:正反控制电机

ParHeavyStartup:重载启动

ParStartWarning:启动时需要预警

ParWithInpContactor:变频控制时使用,=1时,需要检测相关主回路信号

ParReverseNotAllowed:=1时,禁止电机反转

ParMonTime:电机故障监控时间

ParStartDelay:启动延迟时间

ParStartingTime:启动时间,当检测到电机运行信号后,并且运行时间大于次时间,设备切换到运行状态

ParStoppTime:同上

ParIdlingTime:电机空转时间

ParDelayFaultTime:故障延时报警

ParPowerNominal:额定功率

ParDNNode1/2:输入输出 等点的DP站号

 




人生就像一场旅行!
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
21楼    2017-10-26 21:09:45
精编帖  主题:回复:TIA 自制普通电机块

STL的AWL文件也可以导入 到Portal中,在博图 左侧的 浏览 树中,找到外部源程序右键 导入外部程序就行

.txt文件 你可以直接更改后缀名为.AWL

 

 

人生就像一场旅行!
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
22楼    2017-10-26 21:26:08
精华帖  精编帖  主题:回复:TIA 自制普通电机块

断电重启后,上电初始化程序,会将所有电机控制的InHWstop=1,电机会全部停止,,然后系统自动判断,外围控制电路等信息是否正常,如果正常延时一段时间后,InHwStop信号消失。

InHwstop信号主要来自于控制柜的220V,24V等控制电源是否上电,各路保险丝是否正常,现场是否有急停信号。,排除故障,然后手段复位安全继电器,这时控制回路才会接通,PLC才能检测到硬件回路的正常信号。当然,并不是每台电机都有单独的急停回路,往往是一组电柜共用一组控制回路。

电机在手段控制模式下,不管任何原因停止了,必须重新点击启动按钮。

在自动模式下,先判断连锁条件,连锁条件满足,需要启动脉冲信号,第一个无条件启动的电机得到启动脉冲信号后,启动,其余电机 ,按照相关连锁要求自动启动,通过InenableFWD等信号,连锁。


断电保持的好处是,上电后,设备的任务信息还在,客户不需要要重新新建任务,只需要点下,启动按钮,系统会按照工艺要求开启各种设备。

下图中,就是 最简单的一台电机的控制方式,只有一个正转运行信号,和正转控制信号的,程序,我把几台功能类似,工艺要求类似的放在一个FB(组)里,里面的电机以多重背景方式调用,电机的控制信息 又组传递给电机。

 



人生就像一场旅行!
question
奇侠

经验值:5626
发帖数:872
精华帖:6
23楼    2017-10-26 21:52:31
精编帖  主题:回复:TIA 自制普通电机块

Letham, 这个电机的功能能够简要介绍一下,怎么会这么复杂,还是第一次看到这种大型工程。

非常感谢分享。。


drongh
Haohaobb
至圣

经验值:15996
发帖数:1637
精华帖:39
24楼    2017-10-26 21:53:49
精编帖  主题:回复:TIA 自制普通电机块

我现在也习惯fb,定时器,边沿触发存储位等可以做到静态变量里面,接口多用udt传递。个人认为fb的确会占用一定的空间,但是在功能上的确强大一些也更方便集成封装一些。如果对于一些功能简单的比如计算类的,公式什么的,还是可以考虑用fc实现的。其实看看三菱/ab,它们好像是没有fc这一说的。叫fb或者自定义指令,都得需要有建立类似背景数据块的过程。

天道酬勤
Letham
至圣

经验值:14190
发帖数:2021
精华帖:43
25楼    2017-10-26 22:17:09
精编帖  主题:回复:TIA 自制普通电机块

计时 我一般用 CPU上一个扫描周期,来进行累加,虽然精度差点,但是满足要求,我们现在项目一般不会超i过150毫秒,现在采用1500系列PLC ,扫描时间一般可控制在100毫秒左右。

人生就像一场旅行!
Mr S
侠圣

经验值:3717
发帖数:478
精华帖:1
27楼    2017-10-26 22:55:22
精编帖  主题:回复:TIA 自制普通电机块

简单介绍一下接口:

Loc_Rem:现场子站箱上的旋钮

Man和Auto:由上位机一个按钮控制,类似取反操作

Auto_Start:自动启动条件

Start:上位机手动启动

Stop:上位机手动停止

Breaker:空开信号

Run_Signal:运行信号

Flt_Signal:故障信号

Reset:上位机故障复位

Pulse:秒尖峰脉冲

Running:运行指示

Status:电机状态字

Start_Failed:启动无运行信号

Flt:电机总故障

Flt_Time:启动无运行信号检测时间

Alarm:电机报警字



永无止境!
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。