SQL2BACnet
使用手册
目 录
本手册属于上海迅饶自动化科技有限公司及授权许可者版权所有,保留一切权利,未经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部。由于产品版本升级或其他原因,本手册内容有可能变更。上海迅饶自动化科技有限公司保留在没有任何通知或者提示的情况下对本手册的内容进行修改的权利。本手册仅作为使用指导,本公司尽全力在本手册中提供准确的信息。
l 技术支持邮箱:support@opcmaster.com
l 技术支持热线电话:021-58776098
l 网址:http://www.opcmaster.com或http://www.bacnetchina.com
日期 | 版本号 | 备注 |
2013.9.20 | Sep 15 2013(Unicode) | 此版本是最初的英文版本,说明书也是最初的说明书。 |
2013.12.18 | Dec 3 2013(Unicode) | 此版本新增加了中文资源,使得此版本支持中文,此次修改说明书也是整合之前的文档。 |
l SQL2BACnet是由上海迅饶自动化科技有限公司自主研发的新型软件,此软件主要用来解决大多数楼宇自动化软件无法访问SQL数据库的问题。
l 工作原理:在配有SQL数据库的电脑上安装此软件,通过“SQL2BACnet”读SQL 数据库的数据再转换成BACnet IP或BACnet MSTP从站,这样其他电脑上的组态软件仅仅通过BACnetIP或BACnet MSTP协议,既可以实现监视和控制SQL数据库。
l 本软件优点:可配置性强,操作简单,稳定可靠,还支持多国语言,方便用户操作。
l 支持Windows XP/2000/2003/Win 7/Win8/Win Server 2003/Win Server2008/Win Vista操作系统。
l 解决江森Metasys组态软件访问SQL数据库
l 解决美国艾顿公司Bactalk BAS系统访问SQL数据库
l 解决西门子Insight组态软件访问SQL数据库
l 解决和欣楼宇自控管理系统viewlogic软件访问SQL数据库
l 解决美国奥莱斯公司的软件访问SQL数据库
BACnet服务器默认端口是47808,设备ID用户可以自由分配。该服务器的支持的寄存器类型及个数如下表2-1。注意:网关每种寄存器类型最多可建2048个点,且最多支持9种BACnet寄存器类型共18432个点,具体点数由用户自己分配。
BACnet寄存器类型 | BACnet寄存器个数 |
AI(只读不写) | 2048(0~2047) |
AO(可读可写) | 2048(0~2047) |
AV(可读可写) | 2048(0~2047) |
BI (只读不写) | 2048(0~2047) |
BO (可读可写) | 2048(0~2047) |
BV (可读可写) | 2048(0~2047) |
MI(只读不写) | 2048(0~2047) |
MO(可读可写) | 2048(0~2047) |
MV(可读可写) | 2048(0~2047) |
表2-1 BACnet服务器对象支持个数
打开程序运行文件SQL2BACnet.exe,进入程序主运行界面。
点击快捷工具栏图标或者在菜单栏“工具”下选择“SQL数据库连接”,如下图3-1-1。
图3-1-1 选择SQL数据库连接
或者点击工具栏快捷键,在弹出的对话框里填写要连接SQL数据库的连接符,如下图3-1-2。
图3-1-2 SQL数据库参数
其中,Driver后面的参数为数据库类型,Dbp为数据库所在的具体位置(路径),如C盘下名为“数据接口”文件夹下的“Data.mdb” 数据库。Uid为用户名,Pwd为密码,“表名”为要连接的表,本例的数据库连接语句为(Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\数据接口\Database2.mdb;Uid=;Pwd=;Exclusive=no;)。表名填入“test”
点击“确定”后,即可添加要连接的数据库中的表,如下图3-1-3。
图 3-1-3 添加后的SQL数据库表
SQL数据库原表如下图3-1-4。
图3-1-4 SQL数据库原表
由以上两图可以得知,SQL2BACnet是将SQL数据库中原表的每个属性值都链接过来了。
在SQL2BACnet表的界面中,即可对某个对象值进行BACnet服务器关联,双击要关联的属性值,即可弹出以下关联界面,如下图3-2-1。
图3-2-1 BACnet关联界面
如上图,双击第1行第4列中“20”这个变量数据,在弹出的对话框中就可以进行BACnet服务器关联,在关联时,变量数据后面会出现一个“*”号,如下图3-2-2,以此来区分关联的是哪个变量数据。
在关联界面中,可以选择要关联的类型(9种类型)和地址(每种类型的寄存器地址都是从0~2047)。如有需要也可添加单位和描述。
图3-2-2 关联设置
上图设置是将第1行4列的数据关联成AV变量,地址是0,在关联成功后,相对应的变量数据后面会出现一个“*”,表示此项变量数据已经关联成功,如下图3-2-3。
图3-2-3 关联成功
注意,如果想取消某个变量数据的关联,只需将属性框里面的“寄存器地址”置为初始值“-1”即可。
点击菜单栏里的“BACnet服务器”选项,选择“BACnet IP设置”项,如下图3-3-1。
图3-3-1 BACnetIP设置
弹出对话框,用户需要选择SQL2BACnet通讯网卡,网关名称、设备ID用户可自定义,端口号默认为47808,如下图3-3-2。
图3-3-2 BACnet服务器参数设定
点击菜单栏里的“BACnet服务器”选项,选择“BACnet MSTP设置”项,如下图3-4-1。注意勾选“开启MSTP服务器”,网关名称在BACnet IP或BACnet MSTP中设置效果一样。
图3-4-1 BACnet MSTP设置
系统默认字符集为UTF-8,供上位机Insight、Delta使用。若上位机平台为Metasys、Niagara,用户可选择Unicode字符集,这样网关就支持中文点名,中文描述。用户可根据具体需求选择不同的字符集。
图3-5-1 选择BACnet 字符编码
点击菜单栏里的“BACnet服务器”选项,选择“BACnet对象数目大小设置”选项,如下图3-6-1。
图3-6-1 选择BACnet对象设置
弹出对话框,即可动态设定BACnet 9种寄存器对象的开放数目大小,如下图3-6-2,设定值为(0~2047),可支持9种寄存器类型共计18432个点。例如,在AV对象中输入100,即表示BACnet服务器开放的AV类型。
图3-6-2 对象数目大小设置
工程配置结束,即可点击工具栏快捷键保存工程文件。
图3-7-1 保存配置工程文件
保存之后,在标题处显示的“*”会消失如下图3-7-2所示。
图3-7-2 保存成功
当用户在配置变量数据关联BACnet服务器时,也可以通过导入导出功能进行编辑。具体操作如下:
点击工具栏“工具”选择“导出 XLS”功能,或者在主界面数据库表里任意一个位置点击鼠标右键,如下图3-8-1,选择“导出 XLS”功能,即可将表中已经关联过BACnet服务器的变量数据导出到EXCEL表中,用户可以在EXCEL表中进行编辑。
图3-8-1 选择导出EXCEL表
右键点击主界面数据库任意一个位置,导出“导入导出XLS”功能。如图3-8-2。
图3-8-2 右键选择导入导出
图3-8-2 导出CSV表
打开导出的CSV文档如下图3-8-3。
图3-8-3 打开EXCEL表
上图表示在SQL2BACnet主界面表中第1行第4列和第2行第4列共两个变量数据关联成AV0和AV1,用户可以根据以下表3-1中规则在EXCEL表中对需要的变量数据进行关联。
BACnet寄存器类型 | BACnet寄存器大小 | BACnet寄存器代号 |
AI(Analog Input) | 2048(0~2047) | 0 |
AO(Analog Output) | 2048(0~2047) | 1 |
AV(Analog Value) | 2048(0~2047) | 2 |
BI(Binary Input) | 2048(0~2047) | 3 |
BO(Binary Output) | 2048(0~2047) | 4 |
BV(Binary Value) | 2048(0~2047) | 5 |
MI(MIMULTI_STATE_INPUT) | 2048(0~2047) | 6 |
MO(MULTI_STATE_OUTPUT) | 2048(0~2047) | 7 |
MV(MULTI_STATE_VALUE) | 2048(0~2047) | 8 |
表3-1 BACnet对象代号
编辑EXCEL表,如下图表示在原有的基础上,添加了第1行5列和第2行5列两个变量数据,将它们关联成AV2和AV3,编辑完成后,将文件保存。
图3-8-4 编辑EXCEL表
在SQL2BACnet主程序中,点击工具栏“工具”选择“导入XLS”功能,将之前修改过的EXCEL文件导入到主界面数据库编辑表中,如下图3-8-5。
图3-8-5 选择导入EXCEL表
图3-8-6 导入EXCEL表成功
从上图可看到红色框中带“*”号的2个变量数据已经关联成功。
3-9-1 USB硬件狗
安装好的SQL2BACnet是30分钟试用版的。没有插入授权USB 硬件狗时对话框下栏的运行日志会每隔半小时提醒一次授权无效。
当插入授权USB硬件狗时系统会自动检测USB授权是否成功。
当授权USB硬件狗被意外拔出时,运行日志也会有提醒。
3-9-2 软授权
用户在“帮助”菜单栏下,点击打开软授权,机器码发到上海迅饶公司,本公司将相应给出注册码,注册成功即可永久使用。如下图3-9-1。
3-9-1 软授权
填写注册码,如图3-9-2。
3-9-2 获取注册码授权
用户可在“工具”菜单栏下设置软件开机自启动。如下图3-10-1。
图3-10-1 设置开机自启动
本版本新增加了支持多种语言的功能,目前仅支持中英文。本软件会根据用户所使用的操作系统自动选择语言,用户也可以手动选择语言,点击菜单栏“视图”选项,选择“语言设置”选项。
图3-11-1 选择语言设置
在弹出的对话框中可以选择语言,如下图3-11-2。
图3-11-2设置操作语言
测试环境:
电脑A(本机IP地址192.168.1.101) 和电脑B(BACnet客户端IP地址 192.168.1.103)。
电脑B软件:BACnetScan软件,BACnetScan软件是一款由本公司自主研发的BACnet客户端扫描软件,可以扫描BACnetIP和BACnetMSTP服务器,这款软件可以免费使用,如果大家有需要,可以向本公司索取。
电脑A软件:SQL2BACnet软件(将SQL数据库数据转换成BACnetIP从站数据供客户端访问),如下图4-1。
图4-1 电脑A软件运行界面
在另外一台电脑上(IP地址为192.168.1.103)运行BACnetScan扫描软件,选择BACnetIP的扫描方式,如下图4-2,右键选择BACnet IP参数设置。
图4-2 BACnet IP参数设置
更改BACnet IP参数,选择通讯网卡IP地址为 192.168.1.103,,如图4-3。
图4-3 选择通讯网卡
设置完成后,右键选择“搜索设备”,如图4-4。
图 4-4搜索BACnet设备
搜到BACnet设备之后,并搜索点,如下图可以看到通过SQL2BACnet关联的BACnet对象 AV0的值正确搜索到了。
图4-5 BACnet客户端扫描成功
SQL2BACnet中常用的数据库连接语句:
1.MDB
Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=%s;Pwd=%s;Exclusive=%s;
2.SQL Server 2000
driver={SQL Server};SERVER=192.168.1.63;UID=sa;PWD=;DATABASE=onkel_temp ;(注:Server为Server端IP地址;Did用户名;Pwd密码;Database表名称)
3.SQL Server 2008
Driver={SQL Server Native Client 10.0};Server=192.168.2.100;Uid=ibms;Pwd=Dahuaibms123456;Database=ibms;
4.SQL Server 2014
Driver={SQL Server Native Client 11.0};Server=192.168.2.100;Uid=ibms;Pwd=Dahuaibms123456;Database=ibms;
5.MySQL
Driver={MySQL ODBC 3.51 Driver};Uid=%s;Pwd=%s;Server=%s;Port=%d;
6.XLS
Driver={Microsoft Excel Driver (*.xls)};DriverId=790;bq=%s;DefaultDir=%s;
7.Txt
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=%s;Extensions=asc,csv,tab,txt;
8.DB
Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=%s;
9.Fox
Driver={Microsoft Visual Foxpro Driver};Uid=%s;Pwd=%s;SourceDB=%s;SourceType=%s;Exclusive=%s;
SQL2BACnet
使用手册
目 录
本手册属于上海迅饶自动化科技有限公司及授权许可者版权所有,保留一切权利,未经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部。由于产品版本升级或其他原因,本手册内容有可能变更。上海迅饶自动化科技有限公司保留在没有任何通知或者提示的情况下对本手册的内容进行修改的权利。本手册仅作为使用指导,本公司尽全力在本手册中提供准确的信息。
l 技术支持邮箱:support@opcmaster.com
l 技术支持热线电话:021-58776098
l 网址:http://www.opcmaster.com或http://www.bacnetchina.com
日期 | 版本号 | 备注 |
2013.9.20 | Sep 15 2013(Unicode) | 此版本是最初的英文版本,说明书也是最初的说明书。 |
2013.12.18 | Dec 3 2013(Unicode) | 此版本新增加了中文资源,使得此版本支持中文,此次修改说明书也是整合之前的文档。 |
l SQL2BACnet是由上海迅饶自动化科技有限公司自主研发的新型软件,此软件主要用来解决大多数楼宇自动化软件无法访问SQL数据库的问题。
l 工作原理:在配有SQL数据库的电脑上安装此软件,通过“SQL2BACnet”读SQL 数据库的数据再转换成BACnet IP或BACnet MSTP从站,这样其他电脑上的组态软件仅仅通过BACnetIP或BACnet MSTP协议,既可以实现监视和控制SQL数据库。
l 本软件优点:可配置性强,操作简单,稳定可靠,还支持多国语言,方便用户操作。
l 支持Windows XP/2000/2003/Win 7/Win8/Win Server 2003/Win Server2008/Win Vista操作系统。
l 解决江森Metasys组态软件访问SQL数据库
l 解决美国艾顿公司Bactalk BAS系统访问SQL数据库
l 解决西门子Insight组态软件访问SQL数据库
l 解决和欣楼宇自控管理系统viewlogic软件访问SQL数据库
l 解决美国奥莱斯公司的软件访问SQL数据库
BACnet服务器默认端口是47808,设备ID用户可以自由分配。该服务器的支持的寄存器类型及个数如下表2-1。注意:网关每种寄存器类型最多可建2048个点,且最多支持9种BACnet寄存器类型共18432个点,具体点数由用户自己分配。
BACnet寄存器类型 | BACnet寄存器个数 |
AI(只读不写) | 2048(0~2047) |
AO(可读可写) | 2048(0~2047) |
AV(可读可写) | 2048(0~2047) |
BI (只读不写) | 2048(0~2047) |
BO (可读可写) | 2048(0~2047) |
BV (可读可写) | 2048(0~2047) |
MI(只读不写) | 2048(0~2047) |
MO(可读可写) | 2048(0~2047) |
MV(可读可写) | 2048(0~2047) |
表2-1 BACnet服务器对象支持个数
打开程序运行文件SQL2BACnet.exe,进入程序主运行界面。
点击快捷工具栏图标或者在菜单栏“工具”下选择“SQL数据库连接”,如下图3-1-1。
图3-1-1 选择SQL数据库连接
或者点击工具栏快捷键,在弹出的对话框里填写要连接SQL数据库的连接符,如下图3-1-2。
图3-1-2 SQL数据库参数
其中,Driver后面的参数为数据库类型,Dbp为数据库所在的具体位置(路径),如C盘下名为“数据接口”文件夹下的“Data.mdb” 数据库。Uid为用户名,Pwd为密码,“表名”为要连接的表,本例的数据库连接语句为(Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\数据接口\Database2.mdb;Uid=;Pwd=;Exclusive=no;)。表名填入“test”
点击“确定”后,即可添加要连接的数据库中的表,如下图3-1-3。
图 3-1-3 添加后的SQL数据库表
SQL数据库原表如下图3-1-4。
图3-1-4 SQL数据库原表
由以上两图可以得知,SQL2BACnet是将SQL数据库中原表的每个属性值都链接过来了。
在SQL2BACnet表的界面中,即可对某个对象值进行BACnet服务器关联,双击要关联的属性值,即可弹出以下关联界面,如下图3-2-1。
图3-2-1 BACnet关联界面
如上图,双击第1行第4列中“20”这个变量数据,在弹出的对话框中就可以进行BACnet服务器关联,在关联时,变量数据后面会出现一个“*”号,如下图3-2-2,以此来区分关联的是哪个变量数据。
在关联界面中,可以选择要关联的类型(9种类型)和地址(每种类型的寄存器地址都是从0~2047)。如有需要也可添加单位和描述。
图3-2-2 关联设置
上图设置是将第1行4列的数据关联成AV变量,地址是0,在关联成功后,相对应的变量数据后面会出现一个“*”,表示此项变量数据已经关联成功,如下图3-2-3。
图3-2-3 关联成功
注意,如果想取消某个变量数据的关联,只需将属性框里面的“寄存器地址”置为初始值“-1”即可。
点击菜单栏里的“BACnet服务器”选项,选择“BACnet IP设置”项,如下图3-3-1。
图3-3-1 BACnetIP设置
弹出对话框,用户需要选择SQL2BACnet通讯网卡,网关名称、设备ID用户可自定义,端口号默认为47808,如下图3-3-2。
图3-3-2 BACnet服务器参数设定
点击菜单栏里的“BACnet服务器”选项,选择“BACnet MSTP设置”项,如下图3-4-1。注意勾选“开启MSTP服务器”,网关名称在BACnet IP或BACnet MSTP中设置效果一样。
图3-4-1 BACnet MSTP设置
系统默认字符集为UTF-8,供上位机Insight、Delta使用。若上位机平台为Metasys、Niagara,用户可选择Unicode字符集,这样网关就支持中文点名,中文描述。用户可根据具体需求选择不同的字符集。
图3-5-1 选择BACnet 字符编码
点击菜单栏里的“BACnet服务器”选项,选择“BACnet对象数目大小设置”选项,如下图3-6-1。
图3-6-1 选择BACnet对象设置
弹出对话框,即可动态设定BACnet 9种寄存器对象的开放数目大小,如下图3-6-2,设定值为(0~2047),可支持9种寄存器类型共计18432个点。例如,在AV对象中输入100,即表示BACnet服务器开放的AV类型的对象为(AV0~AV99)。
图3-6-2 对象数目大小设置
工程配置结束,即可点击工具栏快捷键保存工程文件。
图3-7-1 保存配置工程文件
保存之后,在标题处显示的“*”会消失如下图3-7-2所示。
图3-7-2 保存成功
当用户在配置变量数据关联BACnet服务器时,也可以通过导入导出功能进行编辑。具体操作如下:
点击工具栏“工具”选择“导出 XLS”功能,或者在主界面数据库表里任意一个位置点击鼠标右键,如下图3-8-1,选择“导出 XLS”功能,即可将表中已经关联过BACnet服务器的变量数据导出到EXCEL表中,用户可以在EXCEL表中进行编辑。
图3-8-1 选择导出EXCEL表
右键点击主界面数据库任意一个位置,导出“导入导出XLS”功能。如图3-8-2。
图3-8-2 右键选择导入导出
图3-8-2 导出CSV表
打开导出的CSV文档如下图3-8-3。
图3-8-3 打开EXCEL表
上图表示在SQL2BACnet主界面表中第1行第4列和第2行第4列共两个变量数据关联成AV0和AV1,用户可以根据以下表3-1中规则在EXCEL表中对需要的变量数据进行关联。
BACnet寄存器类型 | BACnet寄存器大小 | BACnet寄存器代号 |
AI(Analog Input) | 2048(0~2047) | 0 |
AO(Analog Output) | 2048(0~2047) | 1 |
AV(Analog Value) | 2048(0~2047) | 2 |
BI(Binary Input) | 2048(0~2047) | 3 |
BO(Binary Output) | 2048(0~2047) | 4 |
BV(Binary Value) | 2048(0~2047) | 5 |
MI(MIMULTI_STATE_INPUT) | 2048(0~2047) | 6 |
MO(MULTI_STATE_OUTPUT) | 2048(0~2047) | 7 |
MV(MULTI_STATE_VALUE) | 2048(0~2047) | 8 |
表3-1 BACnet对象代号
编辑EXCEL表,如下图表示在原有的基础上,添加了第1行5列和第2行5列两个变量数据,将它们关联成AV2和AV3,编辑完成后,将文件保存。
图3-8-4 编辑EXCEL表
在SQL2BACnet主程序中,点击工具栏“工具”选择“导入XLS”功能,将之前修改过的EXCEL文件导入到主界面数据库编辑表中,如下图3-8-5。
图3-8-5 选择导入EXCEL表
图3-8-6 导入EXCEL表成功
从上图可看到红色框中带“*”号的2个变量数据已经关联成功。
3-9-1 USB硬件狗
安装好的SQL2BACnet是30分钟试用版的。没有插入授权USB 硬件狗时对话框下栏的运行日志会每隔半小时提醒一次授权无效。
当插入授权USB硬件狗时系统会自动检测USB授权是否成功。
当授权USB硬件狗被意外拔出时,运行日志也会有提醒。
3-9-2 软授权
用户在“帮助”菜单栏下,点击打开软授权,机器码发到上海迅饶公司,本公司将相应给出注册码,注册成功即可永久使用。如下图3-9-1。
3-9-1 软授权
填写注册码,如图3-9-2。
3-9-2 获取注册码授权
用户可在“工具”菜单栏下设置软件开机自启动。如下图3-10-1。
图3-10-1 设置开机自启动
本版本新增加了支持多种语言的功能,目前仅支持中英文。本软件会根据用户所使用的操作系统自动选择语言,用户也可以手动选择语言,点击菜单栏“视图”选项,选择“语言设置”选项。
图3-11-1 选择语言设置
在弹出的对话框中可以选择语言,如下图3-11-2。
图3-11-2设置操作语言
测试环境:
电脑A(本机IP地址192.168.1.101) 和电脑B(BACnet客户端IP地址 192.168.1.103)。
电脑B软件:BACnetScan软件,BACnetScan软件是一款由本公司自主研发的BACnet客户端扫描软件,可以扫描BACnetIP和BACnetMSTP服务器,这款软件可以免费使用,如果大家有需要,可以向本公司索取。
电脑A软件:SQL2BACnet软件(将SQL数据库数据转换成BACnetIP从站数据供客户端访问),如下图4-1。
图4-1 电脑A软件运行界面
在另外一台电脑上(IP地址为192.168.1.103)运行BACnetScan扫描软件,选择BACnetIP的扫描方式,如下图4-2,右键选择BACnet IP参数设置。
图4-2 BACnet IP参数设置
更改BACnet IP参数,选择通讯网卡IP地址为 192.168.1.103,,如图4-3。
图4-3 选择通讯网卡
设置完成后,右键选择“搜索设备”,如图4-4。
图 4-4搜索BACnet设备
搜到BACnet设备之后,并搜索点,如下图可以看到通过SQL2BACnet关联的BACnet对象 AV0的值正确搜索到了。
图4-5 BACnet客户端扫描成功
SQL2BACnet中常用的数据库连接语句:
1.MDB
Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=%s;Pwd=%s;Exclusive=%s;
2.SQL Server 2000
driver={SQL Server};SERVER=192.168.1.63;UID=sa;PWD=;DATABASE=onkel_temp ;(注:Server为Server端IP地址;Did用户名;Pwd密码;Database表名称)
3.SQL Server 2008
Driver={SQL Server Native Client 10.0};Server=192.168.2.100;Uid=ibms;Pwd=Dahuaibms123456;Database=ibms;
4.SQL Server 2014
Driver={SQL Server Native Client 11.0};Server=192.168.2.100;Uid=ibms;Pwd=Dahuaibms123456;Database=ibms;
5.MySQL
Driver={MySQL ODBC 3.51 Driver};Uid=%s;Pwd=%s;Server=%s;Port=%d;
6.XLS
Driver={Microsoft Excel Driver (*.xls)};DriverId=790;bq=%s;DefaultDir=%s;
7.Txt
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=%s;Extensions=asc,csv,tab,txt;
8.DB
Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=%s;
9.Fox
Driver={Microsoft Visual Foxpro Driver};Uid=%s;Pwd=%s;SourceDB=%s;SourceType=%s;Exclusive=%s;
楼主最近还看过