MB80V332版程序说明.docx
《MB80V332版程序说明.docx》由会员分享,可在线阅读,更多相关《MB80V332版程序说明.docx(29页珍藏版)》请在冰点文库上搜索。
MB80V332版程序说明
MB系列PLC编程指导书
V3.3.0
1.程序段说明
1)MAIN
主程序,管理整个PLC程序的运行,根据需要调用各子程序段
以下均为子程序,由主程序MAIN管理调用
2)INIT
初始化程序,主要完成以下功能
a)系统参数配置
b)LCUI/O点数配置
c)基本信号输入输出点配置
d)PID参数配置
3)IO_SCAN
a)DI量扫描
b)SOE量扫描
c)虚拟DI,虚拟AI信号汇总
d)输出扫描
4)AI_PROC
a)AI量扫描,强制信号判断
b)模件采集AI量品质判断,工程值转换
c)对418通讯模件采集模拟量进行品质判断
5)SEND
a)系统数据,事件指针组织上送
b)PLC数据上送
6)RECEIVE
a)下行信文解释,处理
7)SC_CTRL
a)顺控解释,根据每个控制对象的控制性质码调用相应的控制流程
b)控制启动记录报警上送
8)STATUS
a)根据流程执行情况控制顺控使能输出
b)在线灯控制
c)调试态和现地态判断
d)各种虚拟DI量判断,生成
e)各种虚拟AI量判断,生成
9)CPM418
a)监视418模件状态,各通讯口状态及故障后的处理
b)于CPM418通讯管理,配置下载
c)读取并处理418上行TI,PI,AI,DI数据
d)写AO置CPM418模件
10)SOE_PROC
a)读取SOE模件产生的事件记录
b)将生成的事件记录上送至事件记录区
11)LCD_SHOW
a)将各IO数据送至固定数据区供触摸屏读取,显示用
b)将控制信息送至固定数据区供触摸屏读取,显示用
12)LCD_CONTROL
a)从固定数据区接收触摸屏的控制命令,组织好后调用SEQ_REC程序进行接收释处理。
b)从固定数据区接收触摸屏的PID条件令,进行合法性判断,执行相应操作并产生记录报警
13)DO_RECORD
a)根据开出变位情况生成开出记录报警
b)将生成的事件记录上送至事件记录区
14)SELF_CHECK
a)读取系统寄存器,生成模件状态数据
15)HOT_STANDBY
a)热备切换程序,当主CPU网络故障或长时间没有收到下行命令后自动进行一次主从切换
16)TI_PROC1
a)TI量扫描,强制信号判断
b)模件采集TI量品质判断,工程值转换
c)对418通讯模件采集温度量进行符号和品质处理,工程值转换
17)CONVERT
a)解压缩算法程序
b)对解压缩后得到的数据进行相应单位转换处理,以保证可在一个寄存器中存放以便于上送和触摸屏显示
18)SEQ_REC
a)控制命令接收,进行合法性判断
b)对应合法控制命令,将控制性质赋给相应控制对象,生成控制启动记录并送至事件记录区,同时由SC_CTRL进行流程调用
c)对应非法控制命令,生成控制结果记录并送至事件记录区
19)SEQ_ALARM
a)对流程中生成的控制报警码生成标准控制记录并送至事件记录区
20)AUTO_START
a)所有自启动流程在这里判断,组织号控制命令后由SEQ_REC程序进行接收处理
b)根据启动源不同生成不同的启动原因码
21)PID_P
a)有功调节运算,输出
b)各种安全闭锁判断,报警
22)PID_Q
a)无功调节运算,输出
b)各种安全闭锁判断,报警
23)AI_REAL_INIT
a)模入信号工程值高限,低限输入
24)ETH_MOV
a)不同LCU间网络数据互取
25)AO_PROC
a)AO模件模出处理
2.PLC对外地址说明
R地址区
说明
M地址区
说明
R801
系统字
R803
CPM418事件指针
R804
自动累加单元
R805
PLC事件指针
R806-R2300
上,下行数据区
R3000-R3239
PLC事件记录区,最多40个事件
R3240-R3930
CPM418事件上送区,最多保存15个事件
R3931-R3990
以太网数据发送区
R3931-R3960开关量
R3961-R3990模拟量
R3991-R4050
以太网数据接收区
R3991-R4020开关量
R4021-R4051模拟量
R2401-R2600
CPM418事件接收区,每事件46字,每次接收最多接收四个事件
R51-R200
交采数据测值触摸屏显示(实际值)
M51-M200
交采数据品质触摸屏显示
R201-R500
模入信号测值触摸屏显示(码值)
M201-M500
模入信号品质触摸屏显示
R601-R800
温度测值触摸屏显示(实际值)
M601-M800
温度量品质触摸屏显示
R501
秒
R502
分
R503
时
R504
日
R505
月
R506
年
R511-R520
BCD码触摸屏对时区
R521
机组状态触摸屏显示
R522-R550
综合字状态触摸屏显示
M511-M550
综合位状态触摸屏显示
R551
触摸屏控制命令确认(65535表示确认)
M551
有功可调
R552
触摸屏下发控制性质
M552
无功可调
R553
触摸屏下发控制对象
M553
现地态
R554
触摸屏控制信息反馈
M554
有功投入至触摸屏
R555
触摸屏交采表显示号(多交采表时切换用)
M555
无功投入至触摸屏
R556
触摸屏通讯状态(触摸屏累加)
R557
开机流程步号
R558
停机流程步号
R559
LCU号
R561
触摸屏有功设定值
M561
触摸屏有功设定确认
R562
触摸屏无功设定值
M562
触摸屏无功设定确认
R563
有功设定值触摸屏显示(1位小数)
M563
触摸屏有功投入
R564
无功设定值触摸屏显示(1位小数)
M564
触摸屏有功退出
R565
有功当前值触摸屏显示(1位小数)
M565
触摸屏无功投入
R566
无功设定值触摸屏显示(1位小数)
M566
触摸屏无功退出
R567
有功最大值(无小数)
R568
有功最小值(无小数)
R569
无功最大值(无小数)
R570
无功最小值(无小数)
3.变量说明
直接见PLC程序
4.程序配置说明
1)每个工程,硬件模件配置顺序:
a)SOE模件
b)DI模件
c)AI模件
d)TI模件
e)DO模件
注意,DI模件输入地址需接着SOE模件输入地址,TI模件输入地址需接着AI模件输入地址
2)CPM418模拟量配置顺序:
a)温度量
b)电度量
c)交采量
d)其他模拟量
注意:
模入信号在SJ30组态时必须按照以上顺序配置
3)程序目前支持点数:
a)SOE----------------------640
b)DIN----------------------640(含虚拟点,模件状态,CPM418通讯点)
虚拟DIN---------------200
模件状态---------------100(最多9个机架)
CPM418通讯点------------------320
c)AIN----------------------640(含虚拟点,交采,CPM418通讯点)
虚拟AIN---------------100
CPM418总点数-------512
CPM418AIN-----------256(含交采)
CPM418TIN-----------256
CPM418PIN-----------100
CPM418交采---------256
d)TIN----------------------256(含CPM418通讯点)
e)DO-----------------------256
CPM418开出------------160
f)AO-----------------------64
CPM418模出----------25
g)控制---------------------200
h)网络数据互取(输入/输出)
DI-----------------------480
AI-----------------------30
4)对应普通工程,只有以下程序需要修改:
a)INIT
b)SC_CTRL
c)STATUS
d)LCD_SHOW
e)AUTO_START
f)PID_P,PID_Q
g)AI_REAL_INT
h)各控制流程
5.程序应用说明
对应普通工程,只有以下程序需要修改:
1)INIT使用说明
INIT程序在PLC每次上电时调用一次,完成初始化功能。
a)INIT程序完成了程序各种数据的初始化功能,需要根据工程实际情况配置以下变量:
变量名称
数据类型
说明
HOTSTANDBY
BOOL
热备系统标记,如果为1则HOT_STANDBY子程序会被调用
SEQ_M
BOOL
允许多流程执行标记,如果允许多个流程同时执行(机组LCU),将该标记置1,如果不允许多个流程同时执行(开关站LCU),将该标记置0
ETH_MOV_EN
BOOL
是否有不同LCU通过网络交换数据功能
LCU_NUM
INT
LCU号
JC_TYPE
INT
交采类型1-压缩算法2-扩展
AC_NO
INT
交采个数
TI_418_PCNT
INT
418通讯TI量点数
AI_418_PCNT
INT
418通讯AI量点数
SI_418_PCNT
INT
418通讯DI量点数
PI_418_PCNT
INT
418通讯PI量点数
AO_418_PCNT
INT
418通讯AO量点数
DO_418_PCNT
INT
418通讯DO量点数
II_PCNT
INT
模件SOE量点数
SI_PCNT
INT
模件DI量点数
AI_PCNT
INT
模件AI量点数
DO_PCNT
INT
模件DO量点数
TI_PCNT
INT
模件TI量点数
AO_PCNT
INT
模件AO量点数
SI_DUMMY_PCNT
INT
虚拟DI量点数(最小64点)
AI_DUMMY_PCNT
INT
虚拟AI量点数(最小32点)
AO_DUMMY_PCNT
INT
虚拟AO量点数
PID_PCNT
INT
PID点数
JIJIA_NO
INT
PLC机架个数
SC_EN_NO
INT
顺控使能开出点点号
ONLINE_NO
INT
在线灯开出点点号
NO_SC_NO
INT
无顺控开出点点号(暂未使用)
SUBJECT_NUM
INT
最大有效控制对象数目(根据控制对象实际数目填写)
CPM_REAL_NO
INT
CPM418模件所在槽位地址
AI_SLOT_NO
INT数组
该槽位是否是AI模件,如第6,17(2机架7槽)槽配置了AI模件,则AI_SLOT_NO[6]=1,AI_SLOT_NO[17]=1
DEBUG_NO
INT
调试按钮输入点号(注意默认是DI输入点,如配置在SOE输入点则需要在STATUS子程序中相应修改)
LOCAL_NO
INT
现地按钮输入点号(注意默认是DI输入点,如配置在SOE输入点则需要在STATUS子程序中相应修改)
SG_NO
INT
事故停机按钮输入点号(注意默认是DI输入点,如配置在SOE输入点则需要在STATUS子程序中相应修改)
JJSG_NO
INT
紧急停机按钮输入点号(注意默认是II输入点,如配置在DI输入点则需要在STATUS子程序中相应修改)
P_MIN
REAL
有功功率最小值,按实际值填写
P_MAX
REAL
有功功率最大值,按实际值填写
Q_MIN
REAL
无功功率最小值,按实际值填写
Q_MAX
REAL
无功功率最大值,按实际值填写
P_UP
INT
有功增输出开出点号
P_DOWN
INT
有功减输出开出点号
Q_UP
INT
无功增输出开出点号
Q_DOWN
INT
无功减输出开出点号
P_SOURCE1
INT
变送器有功输入在AI中的输入点号
Q_SOURCE1
INT
变送器无功输入在AI中的输入点号
P_SOURCE2
INT
交采有功输入在AC_REAL(交采测值)中的输入点号
Q_SOURCE2
INT
交采有无功输入在AC_REAL(交采测值)中的输入点号
UMAX_Z
REAL
转子电压最大值,按实际值填写
UMIN_Z
REAL
转子电压最小值,按实际值填写
IMAX_Z
REAL
转子电流最大值,按实际值填写
IMIN_Z
REAL
转子电流最小值,按实际值填写
UMIN_D
REAL
定子电压最小值,按实际值填写
IMAX_D
REAL
定子电流最大值,按实际值填写
DO_TTUI
BOOL数组
开出报警屏蔽数组,对应开出动作不需要报警的点在这里屏蔽,如开出第5,6点不需要报警,则DO_TTUI[5]=1,DO_TTUI[6]=1
b)INIT中其他注意:
INIT中各IO的总点数由程序自动计算生成,不需要手动填写或计算
开出点在Q寄存器中的偏移由程序自动完成,配置时按实际点配置,但观察时实际值比配置的值要小1
SEQ_ALM数组为每个控制对象的报警码,由于0表示控制成功,故没有控制时SEQ_ALM[]的值为-1
2)SC_CTRL使用说明:
SC_CTRL由MAIN程序实时调用,循环检查每个控制对象的控制性质,如不等于0则调用相应控制流程。
a)变量说明
SEQ_CMMD
INT数组
每个控制对象的当前控制性质
即SEQ_CMMD[X]中保存的是对象X的控制性质,0表示当前对象没有操作
SEQ_S
BOOL数组
启动流程用中间变量,按顺序使用
b)修改说明
根据事先约定好的每个对象控制的控制性质码确定启动的控制流程,如对象3的控制性质10为同期合闸,则判断SEQ_CMMD[3]=10时,置SEQ_S[7](数组编号按顺序使用)为1,由SEQ_S[7]的上升沿调用DL_ON控制流程。
同时注意检查控制对象的数目是否等于SUBJECT_NUM。
注意为防止流程上下位机不一致,在每个控制对象后有一个防误处理流程,当接收到未定义的控制流程时将流程控制变量SEQ_CMMD[]清0,该步骤必须有。
3)STATUS使用说明:
STATUS程序由MAIN程序实时调用,判断IO信号生成各种虚拟状态点。
同时该程序还负责监视有无控制流程在执行,如果有控制流程在执行则自动置开出使能。
a)变量说明
DUMMY_DI
BOOL数组
虚拟开关量点
程序中如果需要判断,直接判断DUMMY_DI[X]的值即可。
该数组于模件DI点长度无关,故模件发生变化导致DI点发生变化后,程序中对虚拟开关量点的判断均不需要任何修改。
DUMMY_AI
INT数组
虚拟模拟量点
程序中如果需要判断,直接判断DUMMY_AI[X]的值即可。
该数组于模件DI点长度无关,故模件发生变化导致AI点发生变化后,程序中对虚拟模拟量的判断均不需要任何修改。
b)修改说明
根据输入信号组合判断后生成相应的DUMMY_DI和DUMMY_AI。
开关量判断应采用SI_BBUF[]
SOE量判断应采用SOE_BBUF[]
模拟量判断应采用AI_REAL[](实际值),品质判断采用AI_QUABIT[],数组下标一致
交采量判断采用AC_REAL[](实际值),品质判断采用AC_QUA[],数组下标一致
注意如用到的AI_REAL值,需要在AI_REAL_INIT中定义该模入信号的高限(AI_REAL_HIGH[])和低限(AI_REAL_LOW[])
温度量判断采用TI_REAL[]
部分虚拟点为在机组程序中固定使用,如用在开关站程序中需跳过这些点,具体参见MB80_V3.0参考表格
4)LCD_SHOW使用说明
将模入、温度和交采的测值和品质状态送至固定数据区供触摸屏读取显示用
将PID的相关测值和投退状态送至固定数据区供触摸屏读取显示用
将一些综合状态点如DUMMY_DI,DUMMY_AI的测值送至固定数据区供触摸屏读取显示用
开关量,SOE量触摸屏直接采集模件IO地址
R寄存器触摸屏读取时地址要加1000M寄存器触摸屏读取时地址要加3000
a)变量说明:
触摸屏用到的地址变量参见PLC对外地址说明
b)修改说明
基本IO信息至触摸屏区无需修改
综合信号根据工程要求在STATUS程序中完成组态后在这里输出至相应综合信号触摸屏区
5)AUTO_START使用说明:
完成所有自启动流程
完成按钮启动的流程
AUTO_START针对机组编写,其他自启动流程可参考其启动方式。
对于公用,开关站LCU等没有自启动流程的程序,可在MAIN中停止对AUTO_START的调用
a)变量说明
AUTO_START
BOOL数组
每个数组成员对应一个事故条件满足
DQSG_TJ
BOOL
电气事故汇总,
JXSG_TJ
BOOL
机械事故汇总
JJSG_TJ
BOOL
紧急事故汇总
DQSGGC
BOOL
电气事故流程执行中标记
JXSGGC
BOOL
机械事故流程执行中标记
JJSGGC
BOOL
紧急事故流程执行中标记
SEQ_REC
INT数组
调用SEQ_REC时需提供的信息
SEQ_REC[1]
命令来源
SEQ_REC[2]
控制性质
SEQ_REC[3]
控制对象
SEQ_REC[4]
启动原因
b)修改说明
根据实际输入信号产生AUTO_START[]流程启动条件
开关量判断应采用SI_BBUF[]
SOE量判断应采用SOE_BBUF[]
模拟量判断应采用AI_REAL[](实际值),品质判断采用AI_QUABIT[],数组下标一致
交采量判断采用AC_REAL[](实际值),品质判断采用AC_QUA[],数组下标一致
注意如用到的AI_REAL值,需要在AI_REAL_INIT中定义该模入信号的高限(AI_REAL_HIGH[])和低限(AI_REAL_LOW[])
虚拟开关量判断采用DUMMY_DI[]
虚拟模拟量判断采用DUMMY_AI[]
温度量判断采用TI_REAL[]
根据不同输入信号产生不同的启动原因码至SEQ_REC[4]
不同事故信号源启动不同级别的事故停机流程,将需要启动的流程的控制性质至SEQ_REC[2](事故停机控制性质按照规范要求,无需修改),控制对象至SEQ_REC[3](默认为1,即机组)
注意控制性质和控制对象和SC_CTRL中一致
注意启动原因码和启动信号的一致性
6)PID_P,PID_Q使用说明:
有功,无功调节程序,完成各种安全闭锁判断和调节输出
a)P_PID变量说明
P_SOURCE1
INT
变送器有功输入在AI中的输入点号
P_SOURCE2
INT
交采有功输入在AC_REAL(交采测值)中的输入点号
P_SOURCE
INT
有功实际测量源点号
R21.BIT1
有功调节投入
P_SET
REAL
有功设定值
P_CURRENT
REAL
有功当前值
P_TEMP
BOOL数组
有功闭锁保护报警中间变量,用于产生调节报警用
b)修改说明
对应闭锁报警,用于判断的交流量可能在不同的数据区,如定子电流可能是在AC_REAL(交采)或AI_REAL(变送器),需根据工程实际修改.
7)AI_REAL_INT使用说明
AI_REAL_INT由主程序每秒中调用1次,完成模入信号工程值高量程和低量程的刷新,程序将自动计算该模入点的工程值,存放在AI_REALP[]变量中。
对应程序中不需要判断的模入信号,可不输入该信号的高量程和低量程
a)变量说明
AI_REAL_HIGH
REAL数组
对应模入信号的高量程
AI_REAL_LOW
REAL数组
对应模入信号的低量程
b)修改说明
根据需要输入高,低量程即可
8)CONVERT使用说明:
CONVER程序为解压缩程序,该部分无需修改
CONVERT程序解压缩后得到AC_REAL,由于AC_REAL可能很大无法送给触摸屏和上位机显示,故需要对其进行单位变化,TEMP_DSP[]用于保存该点是否需要单位变换。
变化后的数据存放在AC_REAL_DSP中给上位机显示。
对应不同的交采表,可能存在不同的算法,由AC_TYPE定义后调用不同的处理程序,解压缩算法为CONVERT,其他类型提交功能开发表在标准程序中增加。
a)变量说明
AC_REAL[]
REAL数组
交采信号实际值
AC_REAL_DSP[]
REAL数组
交采信号显示值
TEMP_DSP[]
BOOL数组
对应点需要进行单位变换
b)修改说明
根据需要修改的点号在程序最后进行单位变化输出值AC_REAL_DSP[]数组
注意程序中判断还应以AC_REAL[]为准(保持单位一致)。
9)ETH_MOV使用说明
ETH_MOV用于不同LCU间通过网络互取数据。
必须热备系统正常或者两个LCU的CPU在同一网段上才能互取数据。
a)变量说明
EHT_SEND_DI
BOOL数组
网络数据开关量发送区
ETH_SEND_AI
INT数组
网络数据模拟量发送区
ETH_REC_DI
BOOL数组
网络数据开关量接收区
ETH_REC_AI
INT数组
网络数据模拟量接收区
ETH_MOV_QUA
BOOL数组
网络数据交换通讯状态
b)修改说明
将需要发送的数据组织好存放在ETH_SEND_DI和ETH_SEND_AI中。
接收来的数据存放在ETH_REC_DI和ETH_REC_AI中,根据通讯数据定义将这些数据在STATUS中送至虚拟点DUMMY_DI和DUMMY_AI中。
在ETHMOV中配置需要通讯的对侧LCU地址。
ETH_MOV_QUA[X]要做为虚拟输入点在STATUS中送给上位机
如果有要和多个LCU进行通讯,参照程序中的说明
10)控制流程修改说明:
a)报警说明
流程中需要报警时,在SEQ_ALARM[X]中放入报警码即可,主程序会自动生成报警信文,启动X为该流程的控制对象号
每次流程报警后如果紧跟着可能有下一个报警,则需要延1秒后再产生下个报警以保证主程序有足够的时间处理掉上次报警
流程成功,需要将SEQ_ALARM[X]置0以产生“流程成功”报警信文,同时将SEQ_CMMD[X]置0以结束本次流程
b)判断
流程中的判断采用以下方式:
开关量判断应采用SI_BBUF[]
SOE量判断应采用SOE_BBUF[]
模拟量判断应采用AI_REAL[](