BB在PKS上建点
vba点与多边形位置关系

vba点与多边形位置关系在VBA中,要判断一个点是否在一个多边形内,可以使用射线法。
以下是一个简单的VBA函数,用于判断一个点是否在一个多边形内:```vbaFunction PointInPolygon(ByVal Pt As Range, ByVal Polygon As Range) As BooleanDim i As IntegerDim j As IntegerDim crossings As IntegerDim startCell As RangeDim endCell As Range' 确保多边形至少有3个顶点If < 3 ThenPointInPolygon = FalseExit FunctionEnd If' 初始化交点计数器crossings = 0' 获取多边形的第一个顶点Set startCell = (1)' 循环遍历多边形的所有顶点For i = 2 ToSet endCell = (i)' 如果起点和终点不是同一个顶点,则绘制从起点到终点的线段,并检查是否与多边形的边界相交If <> ThenIf Intersect(startCell, Pt, endCell) Is Nothing Then' 线段不与多边形边界相交,继续下一个循环Else' 线段与多边形边界相交,增加交点计数器crossings = crossings + 1End IfEnd If' 更新起点为当前顶点,准备下一次循环Set startCell = endCellNext i' 根据交点数判断点是否在多边形内If crossings Mod 2 = 1 ThenPointInPolygon = True ' 点在多边形内ElsePointInPolygon = False ' 点在多边形外或与多边形相交End IfEnd Function```使用方法:将该函数添加到VBA项目中,然后调用`PointInPolygon`函数,传入一个表示点的单元格(例如`Range("A1")`)和一个表示多边形的单元格范围(例如`Range("A1:D3")`)。
2.2 创建几何模型

2.2 创建几何模型2.2.1 创建关键点(1) 在给定坐标点创建关键点命令:K, NPT, X, Y, ZNPT - 关键点的编号,缺省时(0或空)自动指定为可用的最小编号。
X,Y,Z - 在当前坐标系中的坐标值,当前坐标系可以是CSYS 指定的坐标系。
如果输入的关键点号与既有关键点号相同,则覆盖既有关键点。
即关键点是惟一的,并以最后一次输入的为准。
如果既有关键点与较高级图素相连或已经划分网格,则不能覆盖,并给出错误信息。
例如:/prep7 ! 进入前处理k,,10 ! 创建缺省编号的关键点,其编号为1k,15,10,5 ! 创建编号为15 的关键点k,16,10,5,5 ! 创建编号为16 的关键点k,,10,3 ! 创建缺省编号的关键点,其编号为2k,15,10,6 ! 重新定义编号为15 的关键点(2) 在两关键点之间创建一个关键点命令:KBETW, KP1, KP2, KPNEW, TYPE, VALUEKP1,KP2 - 第1 个和第2 个关键点号。
KPNEW - 指定创建的关键点号,缺省时系统自动指定为可用的最小编号。
TYPE - 创建关键点的方式,当TYPE=RATIO 时(缺省),VALUE 为两关键点距离的比值,即:(KP1-KPNEW)/(KP1-KP2)。
当TYPE = DIST 时,VALUE 为KP1 到KPNEW 之间的距离,且仅限于直角坐标系。
VALUE - 由TYPE 决定的新关键点位置参数,缺省为0.5。
如果TYPE = RATIO,则VALUE 为比率,若小于0 或大于1,则在两个关键点的外延线上创建一个新关键点。
如果TYPE = DIST,则VALUE 为距离值,若小于0 或大于KP1 与KP2 之间的距离,会在外延线上创建一个新关键点。
新创建的关键点位置与当前坐标系有关,如为直角坐标系,新点将在KP1 和KP2 之间的直线上;否则将在由当前坐标系确定的线上。
BBS论坛数据库设计代码

BBS论坛数据库设计代码use mastergo----------------------------------------新建数据bbsDB的库---------------------------------------------------------判断数据库是否存在使用exists关键字,在用sysdatabases关键字查询--if exists(select * from sysdatabases where name = 'bbsDB')--如果数据库存在就删除此数据库用drop(删除)database(数据库对象)bbsDB (数据库名)--drop database bbsDB--删除后在添加一个数据库create(添加)database(数据库对象)bbsDB(数据库名)on--create database bbsDBon(name = 'bbsDB_MDF', --数据库主文件名--filename = 'F:\SQL\第四阶段\bbsDB_MDF.mdf', --数据库存储的路径--size = 10mb, --数据库初使大小--filegrowth = 10% --增长变化--)--设置日志文件--log on(name = 'bbsDB_LDF', --日志文件名--filename = 'F:\SQL\第四阶段\bbsDB_LDF.ldf', --日志文件存储路径--size = 1mb, --日志文件初使大小--maxsize = 20mb, --日志文件最大的可储存--filegrowth = 10% --增长变化--)go---------------------------------------以上信息为新建的数据库-------------------------------------------------use bbsDBgo---------------------------------------新建bbsUsers表(用户表)---------------------------------------------------判断bbsDB库是否有表bbsUser的存在exists关键字+sysobjects判断当前数据库表--if exists(select * from sysobjects where name='bbsUsers')--如果表存在就删除此表--drop table bbsUser--新建bbsUser表--create table bbsUsers(UID int identity(1,1) not null, --用户编号,自动增长列,不允许空--Uname varchar(50) not null, --用户名,不允许空--Upassword varchar(50) not null, --密码,不允许空--Uemail varchar(50), --邮箱--Usex char(2) not null, --性别,不允许空--Uclass int, --用户等级--Uremark varchar(50), --备注信息--UregDate datetime not null, --注册日期,不允许空--Ustate int, --状态,是否在线等--Upoint int, --用户的积分--)go--------------------------------------为用户表添加各种约束----------------------------------------------------------为bbsUser表添加约束,add constraint关键字PK_UID约束名,primary key (主键)设置UID字段为主键--alter table bbsUsersadd constraint PK_UID primary key(UID)--为Upassword添加约束,check(Upassword length>=6)字段长度大于等于6位,default设置默认值为888888--alter table bbsUsersadd constraint CK_Upassword check(len(Upassword) >= 6)alter table bbsUsersadd constraint DF_Upassword default('888888') for Upassword--为Uemail字段添加约束,必须包含@号--alter table bbsUsersadd constraint CK_Uemail check(Uemail like '%@%')--为User字段添加约束,设置默认值为男,并且值只能是男或女--alter table bbsUsersadd constraint DF_Usex default('男') for Usexalter table bbsUsersadd constraint CK_Usex check(Usex='男' or Usex='女')--为Uclass字段添加约束,默认值为1--alter table bbsUsersadd constraint DF_Uclass default(1) for Uclass--为UregDate字段添加约束,默认值为当前日期--alter table bbsUsersadd constraint DF_UregDate default(getDate()) for UregDate--为Ustate添加约束,默认值为0--alter table bbsUsersadd constraint DF_Ustate default(0) for Ustate--为Upoint字段添加约束,默认值为20--alter table bbsUsersadd constraint DF_Upoint default(20) for Upoint-----------------------------------以上信息为以建立的bbsUser(用户表)及各种约束-----------------------------------go-----------------------------------新建bbsSection表(版块表)-------------------------------------------------------判断数据库内是否有表bbsSection的存在--if exists(select * from sysobjects where name = 'bbsSection')--如果有此表执行删除--drop table bbsSection--新建bbsSection表,及个字段--create table bbsSection(SID int identity(1,1) not null, --版块编号,自动增长列--Sname varchar(50) not null, --版块名称,不允许空--SmasterID int not null, --版主ID--Sprofile varchar(50), --版面简介--SclickCount int, --点击率--StopicCount int --发贴数--)-----------------------------------为表bbsSection(版块表)添加约束-----------------------------------------------go--将SID字段设置为主键--alter table bbsSectionadd constraint PK_SID primary key(SID)--为SmasterID设置外键,他的主键是bbsUsers表的UID字段foreign key(外键) references 主键表(主键表字段)--alter table bbsSectionadd constraint FK_SmasterID foreign key(SmasterID) references bbsUsers (UID)--为SclickCount字段添加默认值为0--alter table bbsSectionadd constraint DF_SclickCount default(0) for SclickCount--为字段StopicCount设置默认值为0--alter table bbsSectionadd constraint DF_StopicCount default(0) for StopicCount---------------------------------以上为表bbsSection(版块表)建立及添加相应约束-----------------------------------------------------------------------------新建bbsTopic表(主贴表)---------------------------------------------------go--判断数据库中是否有bbsTopic表的存在--if exists(select * from sysobjects where name = 'bbsTopic')--删除此表--drop table bbsTopic--新建bbaTopic表及个字段--create table bbsTopic(TID int identity(1,1) not null, --帖子编号--TsID int not null, --版块编号--TuID int not null, --发贴人ID--TreplyCount int, --回复数量--Tface int, --发贴表情--Ttopic varchar(50) not null, --标题--Tcontents varchar(50) not null, --正文--Ttime datetime, --发贴时间--TclickCount int, --点击数--Tstate int not null, --状态--TlastReply datetime --最后回复时间--)----------------------------------------为bbsTopic(主贴表)表个字段添加约束-----------------------------------------go--将TID字段设置为主键--alter table bbsTopicadd constraint PK_TID primary key(TID)--将TsID设置为外键,引用bbsSection表的主键SID字段--alter table bbsTopicadd constraint FK_TsID foreign key(TsID) references bbsSection (SID) --将TuID字段设置为外键盘,引用bbsUsers表的主键UID字段-- alter table bbsTopicadd constraint FK_TuID foreign key(TuID) references bbsUsers (UID) --设置TreplyCount字段的默认值为0--alter table bbsTopicadd constraint DF_TreplyCount default(0) for TreplyCount--为Tcontents字段添加约束,他的值必须大于等于6位--alter table bbsTopicadd constraint CK_Tcontents check(len(Tcontents) >= 6)--为Ttime字段添加默认值,为当前日期--alter table bbsTopicadd constraint DF_Ttime default(getDate()) for Ttime--设置TclickCount字段默认值为0--alter table bbsTopicadd constraint DF_TclickCount default(0) for TclickCount--设置Tstate字段默认值为1--alter table bbsTopicadd constraint DF_Tstate default(1) for Tstate--为TlastReply字段添加约束,最后回复时间必须要晚于发贴时间--alter table bbsTopicadd constraint CK_TlastReply check(TlastReply > Ttime)-----------------------------------------以上为bbsTopic(主贴表)表建立及建立个字段------------------------------------------------------------------------------新建表bbsReply(回帖表)及个字段--------------------------------------go--判断数据库中是否有bbsReply(回帖表)的存在--if exists(select * from sysobjects where name = 'bbsReply')--删除bbsReply表--drop table bbsReply--创建bbsReply(回帖)表及个字段--create table bbsReply(RID int identity(1,1) not null, --帖子编号--RtID int not null, --主贴ID--RsID int not null, --版块ID--RuID int not null, --回帖人ID--Rface int, --回帖表情--Rcontents varchar(50) not null, --正文--Rtime datetime, --回帖时间--RclickCount int --点击数--)-----------------------------------------为bbsReply(回帖)表个字段添加约束----------------------------------------go--设置RID字段为主键--alter table bbsReplyadd constraint PK_RID primary key(RID)--设置RtID字段为外键引用bbsTopic表的主键TID字段--alter table bbsReplyadd constraint FK_RtID foreign key(RtID) references bbsTopic(TID)--设置RsID为外键引用bbsSection表的主键SID--alter table bbsReplyadd constraint FK_RsID foreign key(RsID) references bbsSection(SID)--设置RuID为外键引用bbsUsers表的主键UID字段--alter table bbsReplyadd constraint FK_RuID foreign key(RuID) references bbsUsers(UID)--设置Rcontents字段必须大于6位--alter table bbsReplyadd constraint DF_Rcontents check(len(Rcontents) >= 6)--设置Rtime字段默认值为当前日期--alter table bbsReplyadd constraint DF_Rtime default(getDate()) for Rtime------------------------------------------------以上为创建bbsReply(回帖)表的内容---------------------------------------------------------------------------------------向表格中插入数据-----------------------------------------go--向bbsUsers(用户表插入数据)--insert intobbsUsers(Uname,Upassword,Uemail,Usex,Uclass,Uremark,Ustate,Upoint) values('天天','123456','zhong@','女',2,'我们的家乡在希望的田野上',3,100)insert intobbsUsers(Uname,Upassword,Uemail,Usex,Uclass,Uremark,Ustate,Upoint) values('可卡因','HYXS007','ss@','女',1,'我要去公安局自首',1,200) insert intobbsUsers(Uname,Upassword,Uemail,Usex,Uclass,Uremark,Ustate,Upoint) values('心酸果冻','888888','yy@','男',2,'牵匹瘦马闯天涯',2,600)insert intobbsUsers(Uname,Upassword,Uemail,Usex,Uclass,Uremark,Ustate,Upoint) values('冬篱儿','fangdong','bb@','女',3,'爱迷失在天堂',4,1200) insert intobbsUsers(Uname,Upassword,Uemail,Usex,Uclass,Uremark,Ustate,Upoint) values('Supper','master','dd@','女',5,'BBS大斑竹',1,500)--向bbsSection(版块表插入数据)--insert into bbsSection(Sname,SmasterID,Sprofile,SclickCount,StopicCount) values('Java技术核心',3,'包含框架,开源',500,1)insert into bbsSection(Sname,SmasterID,Sprofile,SclickCount,StopicCount) values('.Net技术',5,'包含C#,ASP',800,1)insert into bbsSection(Sname,SmasterID,Sprofile,SclickCount,StopicCount) values('Linux/Unix社区',5,'包含系统维护运行',0,0)--向bbsTopic(主贴表)插入数据--insert intobbsTopic(TsID,TuID,TreplyCount,Tface,Ttopic,Tcontents,TclickCount,Tstate,T lastReply)values(1,3,3,1,'还是JAVA','JAVA文件如何读取',200,1,'2008-8-1')insert intobbsTopic(TsID,TuID,TreplyCount,Tface,Ttopic,Tcontents,TclickCount,Tstate,T lastReply)values(2,2,1,2,'.NET文件部署','项目包含、WINFROM',0,1,'2007-8-5')--向bbsReply(跟贴表)插入数据--insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents,RclickCount)values(1,1,5,2,'JAVA中乱码问题怎么解决好?',100)insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents,RclickCount)values(1,1,4,4,'你好你好我们我们',200)insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents,RclickCount)values(1,1,4,4,'呵呵哈哈嘿嘿西西',200)insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents,RclickCount)values(2,1,4,4,'JSP文件转换',200)insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents,RclickCount)values(2,1,4,4,'啊大安定大安定',200)---------------------------------------------------以上为各表格插入测试数据------------------------------------------------------------------------------------------------查询数据库情况-------------------------------------------print 'SQL Server的版本是:'+@@versionprint 'SQL Server的服务器名称是:'+@@servername--------------------------------------------------------------------------------------------------------------------------------------------------------------------系统变量查询上一条语句错误--------------------------------------update bbsUsers set Upassword = '1234' where Uname = '天天'print '执行上条语句产生错误: '+convert(varchar(5),@@error) --输出上一条语句的错误信息----------------------------------------------------------------------------------------------------------------------------------------------------------------------查询用户天天的信息---------------------------------------------set nocount on --不打印影响的信息----查询个人信息--print '天天个人信息如下'select Uname,Uremark,Upoint from bbsUsers where Uname = '天天'--用变量存储ID查询信息--declare @id int --声明变量--select @id = UID from bbsUsers where Uname = '天天' --将bbsUsers表中的UID字段赋值给id变量--print '发贴情况如下'selectconvert(varchar(10),Ttime,111),TclickCount,Ttopic,Tcontents,TclickCount,Tco ntents from bbsTopic where TuID = @idprint '回贴情况如下'select convert(varchar(10),Rtime,111),RclickCount,Rcontents from bbsReplywhere RuID = @idif(@id > 30) --if判断--print '有权发贴' --条件为真输出--else --否则--print '无权发贴' --输出-----------------------------------------------------------------------------------------------------------------------------------------------------------查询心酸果冻用户发贴回帖显示级别---------------------------------------------声明变量用于存储用户ID--declare @uNameID int--声明变量用于存储用户发贴数量--declare @count int--声明变量用于存储用户回帖数量--declare @count1 int--将心酸果冻用户的ID号存到变量@uNameID中--select @uNameID = UID from bbsUsers where Uname = '心酸果冻'--用count统计函数将用户的发贴数量存到变量@count中--select @count = count(*) from bbsTopic where TuID = @uNameID--输出--print '心酸果冻发贴数量为:' + convert(varchar(10),@count)print ''print '具体内容如下:'--显示信息,判断用户发贴数量大于0时显示帖子的信息--if(@count > 0)select Ttime as 发贴时间,TclickCount as 点击率,Ttopic as 主题,Tcontents as 内容from bbsTopic where TuID = @uNameID--用count统计函数将用户的回贴数量存到变量@count1中--select @count1 = count(*) from bbsReply where RuID = @uNameID--输出--print '心酸果冻的回帖数量为: '+convert(varchar(10),@count1)--显示信息,用户回帖数量大于0时显示帖子信息--if(@count1 > 0)select Rtime as 回帖时间,RclickCount as 点击数量,Rcontents as 回帖内容from bbsReply where RuID = @uNameID--判断用户的等级--if((@count + @count1) < 10)print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 新手上路'if(((@count + @count1) >= 10) and ((@count + @count1) < 20))print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 侠客'if(((@count + @count1) >= 20) and ((@count + @count1) < 30))print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 骑士'if(((@count + @count1) >= 30) and ((@count + @count1) < 40))print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 精灵王'if(((@count + @count1) >= 40) and ((@count + @count1) < 50))print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 光明使者'if((@count + @count1) >= 50)print '心酸果冻贴数总计为: '+convert(varchar(10),@count + @count1)+' 功臣级别为: 法老'----------------------------------------------------------------------------------------------------------------------------------------------------------回帖最多的为精华贴-----------------------------------------------------------声明整形变量用于存储主贴编号,和作者编号--declare @tidid intdeclare @zhuzheid intdeclare @huifu int--将主贴标号存到@tidid变量中--select top 1 @tidid = TID from bbsTopic order by TreplyCount desc--将用户编号存到@zhuzheid变量中--select @zhuzheid = TuID from bbsTopic where TID = @tidid--输出--print '第一精华贴的信息如下:'--查出回贴最多的主贴,(用户表与主贴表两表连查)--select Ttime as 发贴时间,TclickCount as 点击率,Uname as 作者,Ttopic as 主题,Tcontents as 内容from bbsTopicinner join bbsUserson bbsUsers.UID = bbsTopic.TuIDwhere bbsUsers.UID = @zhuzheid and bbsTopic.TID = @tidid--为了美观输出空行--print ''--利用@tidid(主贴编号)变量查出回复数量存到@huifu变量中--select @huifu = TreplyCount from bbsTopic where TID = @tidid--输出--print '回帖数量'+convert(varchar(10),@huifu)+',如下所示:'--查询回帖信息--select Rtime as 回帖时间,RclickCount as 点击率,回帖表情= case--case多分之语句判断回帖表情--when Rface = 1 then '~(00)~猪头'when Rface = 2 then '*:0)小丑'when Rface = 3 then '[:|]机器人'when Rface = 4 then '{~0~0~}老人家'when Rface = 5 then '(:<)吹水大王'end,Rcontents as 回帖内容from bbsReply where RtID = @tidid-----------------------------------------------------------------------------------------------------------------/*实现:1、论坛人气,点击率>1000为“人气熊旺旺”,否则为“一般般”2、年度品牌版块:主贴量最多的版块3、年度倒胃版块:主贴量最少的版块4、年度回帖人气最旺奖:回帖的点击率排名前2名5、年度最差斑竹:版块点击率低于500或主贴等于0-------------------------------------------------*/--1、论坛人气,点击率>1000为“人气熊旺旺”,否则为“一般般”--print '---->>>>各位大虾注意了,本论坛即将发布年度奖项<<<<----'if(select sum(SclickCount) from bbsSection) > 1000print '论坛人气评估: 人气熊旺旺大家辛苦了'elseprint '论坛人气评估: 一般般,大家加油了'--2、年度品牌版块:主贴量最多的版块--print '年度最佳版块'select Sname as 版块名称,StopicCount as 主贴数量,Sprofile as 简介from bbsSectionwhere StopicCount = (select max(StopicCount) from bbsSection)--3、年度倒胃版块:主贴量最少的版块--print '年度倒胃版块'select Sname as 版块名称,StopicCount as 主贴数量,Sprofile as 简介from bbsSectionwhere StopicCount = (select min(StopicCount) from bbsSection)--4、年度回帖人气最旺奖:回帖的点击率排名前2名--print '年度回帖人气最旺的前两位'select Uname as 大名,Uclass as 星级from bbsUsers where uid in(select top 2 TuID from bbsTopic order by TclickCount desc)--5、年度最差斑竹:版块点击率低于500或主贴等于0--if exists(select * from bbsSection where StopicCount = 0 or SclickCount <= 500)beginprint '请以下斑竹加油哦'select Sname as 版块名称,StopicCount as 主贴数量,SclickCount as 点击率from bbsSectionwhere StopicCount = 0 or SclickCount <= 500end-----------------------------------------------------------------------------------------------------------------*-------------------------------------------用户发主贴---------------------------------------------------------*/--声明变量存放用户ID和版块ID--declare @id intdeclare @bankuai int--将发贴人心酸果冻的ID存到变量@id中--select @id = UID from bbsUsers where Uname = '心酸果冻'--将版块编号放入@bankuai变量中--select @bankuai = SID from bbsSection where Sname like '%.Net%'--将发贴内容插入到主贴表--insert into bbsTopic(TsID,TuID,Tface,Ttopic,Tcontents)values(@bankuai,@id,3,'什么是.Net啊?','我靠!微软的.Net广告超过半个北京城啊....')--更新主贴表,.Net技术版块主贴数加1--update bbsSection set StopicCount = StopicCount + 1 where SID = @bankuai --更新用户积分,如果是新主题则积分加100否则加50分--if not exists(select * from bbsTopic where Ttopic like '什么是.Net啊?' and TuID <> @id)update bbsUsers set Upoint = Upoint + 100 where UID = @idelseupdate bbsUsers set Upoint = Upoint + 50 where UID = @id--更新积分后更新级别--update bbsUsers set Uclass = casewhen Upoint < 500 then 1when Upoint between 500 and 1000 then 2when Upoint between 1001 and 2000 then 3when Upoint between 2001 and 4000 then 4when Upoint between 4001 and 5000 then 5else 6end--所有用户等级从新排名--select 妮称= Uname,星级= casewhen Uclass = 0 then ' 'when Uclass = 1 then '★'when Uclass = 2 then '★★'when Uclass = 3 then '★★★'when Uclass = 4 then '★★★★'when Uclass = 5 then '★★★★★'else '★★★★★★'end,积分= Upoint from bbsUsers------------------------------------------------------------------------------------------------------------------/*----------------------跟贴----------------------------------------------------------------*/--声明变量用于存放回帖人编号及主贴ID--declare @GTid intdeclare @ZTid intdeclare @BKid int--获得可卡因的编号--select @GTid = UID from bbsUsers where Uname = '可卡因'--获得主贴的编号--select @ZTid = TID from bbsTopic where Ttopic like '%什么是.Net%'--获得版块编号--select @BKid = SID from bbsSection where Sname like '%.Net%'--插入回帖内容--insert into bbsReply(RtID,RsID,RuID,Rface,Rcontents)values(@ZTid,@BKid,@GTid,2,'.NET是微软极力推崇的企业级信息网络共享平台.')--回帖后主贴回复数量加1,点击率加1--update bbsTopic set TreplyCount = TreplyCount + 1,TclickCount = TclickCount + 1 where TID = @ZTid--回帖后相应的版块点击率加1--update bbsSection set SclickCount = SclickCount + 1 where SID = @BKid--回帖后给用户加分,如果是第一个回帖加100分,否则加50分--if ((select top 1 RuID from bbsReply where RtID = @ZTid order by Rtime) = @GTid)update bbsUsers set Upoint = Upoint + 100 where UID = @GTidelseupdate bbsUsers set Upoint = Upoint + 50 where UID = @GTid--更新用户相应的信息--update bbsUsers set Uclass = casewhen Upoint < 500 then 1when Upoint between 500 and 1000 then 2when Upoint between 1001 and 2000 then 3when Upoint between 2001 and 4000 then 4when Upoint between 4001 and 5000 then 5else 6end--发布主贴和跟贴--select 主贴作者= '心酸果冻',主贴发布时间= convert(varchar(10),Ttime,111),主题= Ttopic,内容= Tcontentsfrom bbsTopic where TID = @@identityselect 回帖作者= '可卡因',回帖时间= convert(varchar(10),Rtime,111),回帖内容= Rcontentsfrom bbsReply where RID = @@identity--星级从新排名--select 妮称= Uname,星级= casewhen Uclass = 0 then ' 'when Uclass = 1 then '★'when Uclass = 2 then '★★'when Uclass = 3 then '★★★'when Uclass = 4 then '★★★★'when Uclass = 5 then '★★★★★'else '★★★★★★'end,积分= Upoint from bbsUsers-----------------------------------------------------------------------------------------------------------------/*------------------------------------------删除帖子-----------------------------------------------------------*/--声明变量用于存放回帖人编号及主贴ID--declare @GTid intdeclare @BZid intdeclare @ZTid intdeclare @BKid int--获得斑竹心酸果冻的编号--select @BZid = UID from bbsUsers where Uname = '心酸果冻'--获得主贴的编号--select @ZTid = TID from bbsTopic where Ttopic like '%什么是.Net%'--获得所有回帖人的编号--select @GTid = RuID from bbsReply where RtID = @ZTid--获得版块编号--select @BKid = SID from bbsSection where Sname like '%.Net%'--被删帖的斑竹心酸果冻减去积分100分--update bbsUsers set Upoint = Upoint - 100 where UID = @BZid--回贴的帖主均减积分50分--update bbsUsers set Upoint = Upoint - 50 where UID = @GTid--帖子所在版块的主贴量减1--update bbsSection set StopicCount = StopicCount - 1 where SID = @BKid --如果回帖数量大于10给予严重警告,否则给予警告--if((select TreplyCount from bbsTopic where TID = @ZTid) > 10)print '影响很坏,给予严重警告一次'elseprint '给予警告一次'--开始删除,先删除跟贴在删除主贴--delete from bbsReply where RtID = @ZTiddelete from bbsTopic where TID = @ZTid--重新排名--update bbsUsers set Uclass = casewhen Upoint < 500 then 1when Upoint between 500 and 1000 then 2when Upoint between 1001 and 2000 then 3when Upoint between 2001 and 4000 then 4when Upoint between 4001 and 5000 then 5else 6end--重新星级排名--select 妮称= Uname,星级= casewhen Uclass = 0 then ' 'when Uclass = 1 then '★'when Uclass = 2 then '★★'when Uclass = 3 then '★★★'when Uclass = 4 then '★★★★'when Uclass = 5 then '★★★★★'else '★★★★★★'end,积分= Upoint from bbsUsers-----------------------------------------------------------------------------------------------------------------select * from bbsUsersselect * from bbsSectionselect * from bbsTopicselect * from bbsReply。
奥的斯服务器中文说明

F8fg9545t550-04 XO-21VF将服务器插入OCSS,则四个模块均可监控;插入MCSS,可监控除OCSS的其他三个模块;插入DBSS或DISS只能监控对应模块本身。
现在我们对各模块重要菜单做说明。
一.Ocss重要菜单:1。
监控(MONITOR)M-1-1-1(CAR MONITOR),此菜单可用来监控轿厢的状态,操作模式,运动状态,门状态,内外呼的数目,以及负载状态。
它还允许用服务器输入内外呼信号。
群组中轿厢方向位置操作模式状态前后门状态梯号向下6楼正常上方向运动前开到底,后关到底8 U U 02 D 00 1负载状态8楼上召上2下0 10%开关动作其中,操作模式是非常重要的信息。
M-1-1-2(IO MONITOR),此菜单可检查一些重要的串行输入输出状态.M-1-1-3(GROUP MONITOR),此菜单可监控群组中其他电梯的状态。
2.测试(TEST)M-1-2-1(RSL I/O ),此菜单可用来检查所有串行输入输出口的状态,通过选择1,2,3来监控轿厢,厅外和群控串行信号。
也可通过ON ,OFF 键来强制输出口的状态。
串行连接 地址 地址位数输入有效,输出无效M-1-2-2-1(EVENT LOG ),OCSS 故障记录。
运行次数 运行时间 分DTC 保护 发生5次 最近一次发生于3分钟以前M-1-2-2-2(MODES )模式记录 。
最近一次发生于14分前3.一般参数设置(NOM SETUP )M-1-3-1(INSTALL),OCSS安装参数,用于实现丰富的轿厢操作功能,里面共9个子菜单。
M-1-3-2(INPUT/OUTPUT),串行通讯地址设置。
M-1-3-3(MASKS),用于多种屏蔽服务,共四个子菜单,最常用的是第一个。
M-1-3-4(POS INDICATORS),各楼层显。
M-1-3-5,楼层表(FLOOR TABLE),OCSS与MCSS楼层对应关系。
4.特殊参数设置(SPECIAL SETUP)M-1-4-4(OPMODE ENABLE),操作模式屏蔽。
DCS控制系统升级改造实践

DCS控制系统升级改造实践黑龙江哈尔滨150000摘要:经济在快速发展,社会在不断进步,DCS控制系统是一种典型的工业控制系统,它的系统原理基本结构是在微处理器的基础上,可以使控制功能实现分散性,使可显示的操作集中在一起,兼顾所有操作的同时还能够分而治之。
DCS控制系统是目前比较流行的分散控制系统,在国内,DCS控制系统称作是集散控制系统。
近些年随着国内、外工业自动化的普及和自动化技术的不断发展、提高,我国很多企业和公司普遍采用DCS控制系统。
随着科技不断进步,DCS控制系统也在不断完善和发展,性能也在迅速提高而且DCS系统的价格在逐渐下降,对DCS控制系统的升级改造也随之增多。
关键词:DCS控制系统;自动化;升级改造引言进入新世纪以来,我国的社会主义市场经济持续发展,为石油炼化企业带来了前所未有的发展机遇和挑战。
一方面,现代技术不断发展,优化了石油炼化企业的控制系统。
另一方面,工作环境日益复杂,增加了机组故障发生频率。
在炼化企业中,DCS系统的应用最为广泛。
就目前来看,大部分炼化企业对DCS系统进行了升级改造,在很大程度上提高了内控水平。
为了进一步促进炼化企业的发展,必须对DCS系统故障进行分析和处理。
1、改造的必要性每套控制系统都是冗余的服务器运行,某催化DCS系统现为HONEYWELL PKS PMIO结构,下层IO卡件均为2008年投用,至2023年将使用18年,超年限服役,经多次扩容改造,系统负荷大,故障率升高,网络不稳定,同时HM、NIM、服务器等关键部件急需改造升级。
单台服务器故障时,备用服务器会立刻切换为主服务器,不会立刻影响生产,但也存在2台服务器同时故障的可能性,服务器故障会切断操作员站与现场设备的实时数据连接,严重影响生产的稳定运行。
2、DCS控制系统升级改造实践2.1数据库和逻辑组态原有的点名以及点信息不变的情况下,按照NT+系统的数据库格式和要求重新生成数据库并下载,控制逻辑以目前机组实际控制逻辑为本,进行逻辑组态,对每个DPU站,重新绘制逻辑图,将原有DCS/DEH系统的LOOP,LADDER以及TEXT算法用更加方便的图形化工具进行绘制,最终生成NT+系统需要的SAMA图。
DCS基础知识

DCS发展史
第一阶段(初创期),1975年~1980年 技术特点表现为: 1)采用微处理器为基础的控制单元,实现分散 控制,有各种各样的算法,通过组态独立完成回路控 制,具有自诊断功能 2)采用带CRT显示器的操作站与过程单元分离, 实现集中监视,集中操作 3)采用较先进的冗余通信系统 这一阶段的代表产品有美国Honeywell公司的 TDC2000,Bvailey公司的Network90,Foxboro公司的 Spectrum,日本横河电机株式会社的CENTUM等;
KK901/902 903/904 旁路开 旁路开 关 关 再生 部分复 位联锁 主风 机组紧 急停车 反应 部分复 位联锁 主风 机组安 全运行
BK902 901/902 旁路 压力旁 开关 路开关 B烟道 901 温度复 复位 位联锁 联锁 备用 机组安 全运行 K 紧急 停车
主要仪表控制回路说明----简单调节
HONEYWELL公司的DCS简介---架构图
现场巡检自动化 IntelaTrac PKS
企业级高级应用 Business FLEX Workcenter POMS, OptiVISION
工厂数据库 系统 PHD
安全只读访问过程画 面的Web 服务器 eServer
工厂业务客户端 Web 浏览器
防火墙
HONEYWELL公司的DCS简介-----报警
报警的优先级为:紧急优先级:Urgent 高优先级:High 低优先级:Low 事件杂 志:Journal
兰石化300万吨催化DCS简介
标准画面介绍及操作
兰石化300万吨催化DCS简介—操作面板
面板固顶按钮 位号名 测量单位
面板固顶
关闭按钮 位号说明 PV值 测量范围 高报警限
05-拓扑点(POI)建模操作要领
拓扑点(POI)建模操作要领1范围本标准规定了船体平面建模中船体板架拓扑点(POI)的建模操作要领。
2操作依据船体详细设计图纸,建模代码手册,各类工艺图纸3基本定义拓扑点全称TOPOLOGY POINT,是指存在于当前板架上的一个点,其位置是参考模型的其他部分计算所得。
板上构件可以通过拓扑点产生。
拓扑点在构件和其他模型之间起到链接的作用。
4操作步骤激活板架后,选择Planar>Model> Create>Point,现在系统将显示下面菜单4.1. Given选择这个子项,拓扑点可以通过直接赋值给出。
(所赋值可以为已存在点)现在选择2 2D point,系统将显示下面菜单选择2 XZ或者4 UV,系统会弹出对话框,要求输入点的坐标。
此时不输入坐标值,点击OK,系统将提示用鼠标点击获取坐标值。
取点结束后,点击OC,系统出现下面菜单NO点的位置号通过系统自动赋值,范围从1~999。
可以通过手工赋值,但不可与已存在点重复。
R3表示3D点,如果没给出,生成的点将投到曲面或当前板架的理论面上。
DU,DV or DX,DY,DZ 用于沿所选的坐标系移动点。
Direction angle(s) T如果没给出(并且R3没给出),点将投到当前板架的理论面上,如果给出,点将被移动到板架上板的平面上。
Offset in direction T在T方向离所选的点的偏移,如果没给出,将在所示位置创建点。
点击OK键,对话框结束,系统将显示点在屏幕上。
4.2. Corner选择这个子项,系统将通过当前板架或其他已存在板架的角来确定拓扑点。
选择1 This panel。
系统将提示’Indicate corner’。
可选择一个或多个Corner。
Offset in direction 1: 从所选的角沿边界的正向移动一个距离定义一个拓扑点。
Offset in direction 2: 从所选的角沿边界的反向移动一个距离定义一个拓扑点。
工艺流程图绘制培训教材详细操作步
中国石油中国石油MES项目Workcenter Display Builder流程图绘制软件培训教材中国石油大连石化公司2010年7月Workcenter Display Builder流程图绘制软件培训教材目录1绘图软件的介绍 (3)1.1产品厂家 (3)1.2产品功能 (3)2绘图软件的安装 (3)3绘图软件的主要功能 (3)3.1主菜单功能 (3)3.2下拉菜单功能 (4)3.3快捷键功能 (7)4流程图各组成元件的约定 (11)4.1图形背景的定义 (11)5如何绘制流程图 (15)5.1线条的画法(现场演示) (15)5.2区块的画法(现场演示) (16)5.3文本的书写(现场演示) (18)5.4复制、组合、旋转等功能的应用(现场演示) (18)6流程图绘制演示 (20)6.1图形大小的设置 (20)6.2图形背景的设置(以原图为背景) (20)6.3静态流程图绘图演示 (22)7数据控件的配置 (23)附件I软件安装手册 (32)1绘图软件的介绍1.1 产品厂家Workcenter Display Builder流程图绘制软件是美国Honeywell公司的产品。
是专为其MES/实时数据库系统(Uniformance PHD)配套的进行流程图绘制的软件工具。
1.2 产品功能流程图是实时数据库的一个重要应用,Uniformance PHD应用最新的WorkcenterPKS (WPKS) 技术实现流程图的Web 浏览功能。
HMLWeb显示技术是Honeywell 的专利技术,使用HTML支持第三方数据和动态图形控件。
2绘图软件的安装请参见附件。
3绘图软件的主要功能3.1 主菜单功能。
PKS-NRPS数据库的研究进展
PKS-NRPS数据库的研究进展
姚琳;郭东林
【期刊名称】《中国农学通报》
【年(卷),期】2009(0)16
【摘要】非核糖体多肽合成酶(NRPS)和聚酮合成酶(PKS)是调控次级代谢物聚酮
类物质和非核糖体多肽合成的关键酶。
据推测,至少有1000种聚酮/多肽化合物已
经被发现,理论分析表明超过10亿的化合物能被合成。
目前,国外通过高通量筛选、计算机预测-文献挖掘等方法,获得了大批量的PKS/NRPS基因及化合物结构,并由
此构建和开发了一些PKS/NRPS数据库和软件,作者分析了这些数据库包括Norine、NRPS-PKS、ASMPKS和软件Cluscan、Clusean的相关信息及并概述
了这些数据库及软件的应用。
【总页数】4页(P280-283)
【关键词】PKS;NRPS;数据库;生物信息学
【作者】姚琳;郭东林
【作者单位】哈尔滨师范大学
【正文语种】中文
【中图分类】S476.8
【相关文献】
1.真菌中PKS-NRPS杂合天然产物研究进展 [J], 杨晓钰;何佳宁;牛雪梅;
2.沉积学数据库建设与沉积大数据科学研究进展:以Macrostrat数据库为例 [J],
蒋璟鑫; 李超; 胡修棉
3.战伤数据库研究进展与启示 [J], 胡鹏伟;杨晨;秦宇迪;解宏伟;陈福兴;常旺;陈国良;张磊;刘晓荣
4.基于WoS与CNKI数据库分析海岸带生态环境研究进展 [J], 郭京梅;刘宏伟;付豪;付保荣
5.数据库技术在古代中医医案整理中应用研究进展 [J], 李丹;闫朝升;由佳鑫
因版权原因,仅展示原文概要,查看原文内容请购买。
数学建模第三次作业——追击问题
数学建模实验报告机械工程及自动化75班07011114丁鑫四人追击问题问题:在一个边长为1的正方形跑道的四个顶点上各站有一人,他们同时开始以等速顺时针追逐下一人,在追逐过程中,每个人时刻对准目标,试模拟追击路线。
并讨论:(1) 四个人能否追到一起?(2)若能追到一起,则每个人跑过多少路程?(3)追到一起所需要的时间(设速率为1)?(4)如果四个人追逐的速度不一样,情况又如何呢分析:先建立坐标系,设计程序使从A,B,C,D 四个点同时出发,画出图形并判断。
程序设计流程:四个人追击的速度相等,则有14321=====v v v v v 。
针对这种情形,可有以下的程序。
hold onaxis([0 2 0 2]);gridA=[0,0];B=[0,1];C=[1,1];D=[1,0];k=0;s1=0;s2=0;s3=0;s4=0; %四个人分别走过的路程t=0;v=1;dt=0.002;while k<10000k=k+1;plot(A(1),A(2),'r.','markersize',15);plot(B(1),B(2),'b.','markersize',15);plot(C(1),C(2),'m.','markersize',15);plot(D(1),D(2),'k.','markersize',15);e1=B-A;d1=norm(e1);e2=C-B;d2=norm(e2);e3=D-C;d3=norm(e3);e4=A-D;d4=norm(e4);fprintf('k=%.0f ',k)fprintf('A(%.2f,%.2f) d1=%.2f ',A(1),A(2),d1)fprintf('B(%.2f,%.2f) d2=%.2f ',B(1),B(2),d2)fprintf('C(%.2f,%.2f) d3=%.2f ',C(1),C(2),d3)fprintf('D(%.2f,%.2f) d4=%.2f\n',D(1),D(2),d4) A=A+v*dt*e1/d1;B=B+v*dt*e2/d2;C=C+v*dt*e3/d3;D=D+v*dt*e4/d4;t=t+dt;s1=s1+v*dt;s2=s2+v*dt;s3=s3+v*dt;s4=s4+v*dt;if norm(A-C)<=5.0e-3&norm(B-D)<=5.0e-3 breakendendts1s2s3s4部分运行结果:k=481 A(0.52,0.52) d1=0.04 B(0.52,0.48) d2=0.04 C(0.48,0.48) d3=0.04 D(0.48,0.52) d4=0.04 k=482 A(0.52,0.52) d1=0.04 B(0.52,0.48) d2=0.04 C(0.48,0.48) d3=0.04 D(0.48,0.52) d4=0.04 k=483 A(0.52,0.52) d1=0.04 B(0.52,0.48) d2=0.04 C(0.48,0.48) d3=0.04 D(0.48,0.52) d4=0.04k=484 A(0.52,0.51) d1=0.04 B(0.51,0.48) d2=0.04 C(0.48,0.49) d3=0.04 D(0.49,0.52) d4=0.04 k=485 A(0.52,0.51) d1=0.04 B(0.51,0.48) d2=0.04 C(0.48,0.49) d3=0.04 D(0.49,0.52) d4=0.04 k=486 A(0.52,0.51) d1=0.03 B(0.51,0.48) d2=0.03 C(0.48,0.49) d3=0.03 D(0.49,0.52) d4=0.03 k=487 A(0.52,0.51) d1=0.03 B(0.51,0.48) d2=0.03 C(0.48,0.49) d3=0.03 D(0.49,0.52) d4=0.03 k=488 A(0.52,0.51) d1=0.03 B(0.51,0.48) d2=0.03 C(0.48,0.49) d3=0.03 D(0.49,0.52) d4=0.03 k=489 A(0.52,0.51) d1=0.03 B(0.51,0.48) d2=0.03 C(0.48,0.49) d3=0.03 D(0.49,0.52) d4=0.03 k=490 A(0.52,0.50) d1=0.03 B(0.50,0.48) d2=0.03 C(0.48,0.50) d3=0.03 D(0.50,0.52) d4=0.03 k=491 A(0.52,0.50) d1=0.02 B(0.50,0.48) d2=0.02 C(0.48,0.50) d3=0.02 D(0.50,0.52) d4=0.02 k=492 A(0.52,0.50) d1=0.02 B(0.50,0.48) d2=0.02 C(0.48,0.50) d3=0.02 D(0.50,0.52) d4=0.02 k=493 A(0.51,0.50) d1=0.02 B(0.50,0.49) d2=0.02 C(0.49,0.50) d3=0.02 D(0.50,0.51) d4=0.02 k=494 A(0.51,0.50) d1=0.02 B(0.50,0.49) d2=0.02 C(0.49,0.50) d3=0.02 D(0.50,0.51) d4=0.02 k=495 A(0.51,0.50) d1=0.02 B(0.50,0.49) d2=0.02 C(0.49,0.50) d3=0.02 D(0.50,0.51) d4=0.02 k=496 A(0.51,0.50) d1=0.01 B(0.50,0.49) d2=0.01 C(0.49,0.50) d3=0.01 D(0.50,0.51) d4=0.01 k=497 A(0.51,0.49) d1=0.01 B(0.49,0.49) d2=0.01 C(0.49,0.51) d3=0.01 D(0.51,0.51) d4=0.01 k=498 A(0.51,0.49) d1=0.01 B(0.49,0.49) d2=0.01 C(0.49,0.51) d3=0.01 D(0.51,0.51) d4=0.01 k=499 A(0.50,0.49) d1=0.01 B(0.49,0.50) d2=0.01 C(0.50,0.51) d3=0.01 D(0.51,0.50) d4=0.01 k=500 A(0.50,0.50) d1=0.01 B(0.50,0.50) d2=0.01 C(0.50,0.50) d3=0.01 D(0.50,0.50) d4=0.01 k=501 A(0.50,0.50) d1=0.01 B(0.50,0.50) d2=0.01 C(0.50,0.50) d3=0.01 D(0.50,0.50) d4=0.01 k=502 A(0.50,0.50) d1=0.00 B(0.50,0.50) d2=0.00 C(0.50,0.50) d3=0.00 D(0.50,0.50) d4=0.00 t =1.0040s1 =1.0040s2 =1.0040s3 =1.0040s4 =1.0040从运行的结果来看,如果四个人的追击速度相同,均为1,可有以下的结果:(1) 四人最后可以追到一起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PKS上建立BB控制器点
1. 打开configuration studio,进入quick builder。
2. 建立BB控制类型的通道
通信端口选择以太网,modbus TCP
3. 建立BB类型的控制器
注意:PLC Station ID 为BB MODBUS 从程序中slave address的数值
1. Data Table 为选择数据类型分为模拟量数字量。
4. 建立数字量的点
Parent Asset 为所建立的域的名称。
PV Source address值为控制器的名称加上点的在BB从程序中设置的地址值。
Number of States为数字量分几种状态。
5. 建立模拟量点
Parent Asset 为所建立的域的名称。
PV Source address值为控制器的名称加上点的在BB从程序中设置的地址值。
100% range value为满量程的值,0% range value为起始值。
6.
7. 下载
8. 打开Station在里面查看通道和控制器是否连接,连接正确会显示绿灯,如下图:
9. 打开HMIWEB,建立一个模拟量的点
在属性中,选择data,连接类型中选择点/参数,把需要建立的点的名称写入。
10. 数字量的点建立只需要画出图形打开设置就可以,Data界面与与模拟量类似
在Animation中我们选择动画效果Discrete,0代表数字量0状态,1代表1状态,以此
类推。