用VB实现上位机与OMRONPLC串行通讯
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 3 上位机和 PLC 的数据传送的部分程 序
下面, 以向 DM 区 D0200 为始的单元写入一个 字”1234”为例说明。写多个字时, 只须将“1234”换 成多个需写入的字即可。始果要读以 D0200 为起始 单元的数据,只须将 Data 字符串中“W”改为“R”, 并将“1234”改为须读入的字数便可。对于 DM 区 PLC 上电(OFF→ON)或模式切换(程序模式←→ 运行模式 / 监视模式间的切换) 时也可保持数据。
Serial Communication between Computer and PLC by Using VB Programming
YANG Li-xuan,LIU Da-quan (Shanghai MICSON Semiconductor Equipment Co., Ltd. Shanghai 201114,China)
http://www.cicma g.com
2009·1· (总第 116 期) 79
应用
CIC 中国集成电路
China lnte gra te d Circult
高级语言引入工控网络的监控中, 对于那些有兴趣 自行开发上位机控制软件的开发人员, 将有一定的 借鉴作用。本文将以在实际工程中运用 VB 实现上 位机和 OMRON CH1H PLC 的通讯为例, 向大家介 绍一种简单可靠,易于掌握的通讯方案。
块。多点通信时,可作为单帧发送的最大数据块为
终止符— ——设置 “*” 和 “回车”(CHR
131 个字符,因此当一个数据块含有 132 或更多个 $(13))两个字符表明命令结束。当 PLC 收到上位
数据块时,要分成两帧或多帧发送。每个数据块都 机的命令后,会以下述格式应答。
以设备号及标题开始,以校验码(FCS)及结束符结 PLC到上位
80 (总第 116 期) 2009·1·
http://www.cicma g.com
CIC 中国集成电路 China lnte gra te d Circult
应用
有传送优先权,总是首先发出命令并启动通信, PLC 串口设置中设置)
HOST LINK 单元收到命令交由 PLC 执行,然后将执
命令码— ——设置两个字节的命令码
正文— ——仅在有读数据时生成
校验码— ——用于校验,由 PLC 计算给出,
同上位机的 FCS 计算方法相同,可用来判断 PLCቤተ መጻሕፍቲ ባይዱ传
来的应答是否可靠
终止符— ——设置 “*” 和 “回车”(CHR
$(13))两个字符表明命令结束。
4 通讯程序实例
图 2 数据传送程序流程图
上位机链接命令可参考相应 PLC 的编程手册, 其基本格式如下:
上位机发送命令的格式
上位机到 PLC 命令格式
4. 1 在 VB中添加控件
在窗体中添加 MSComm 控件 MSCommSet 和一 个时钟控件 Timerl,时钟控件用来处理通信超时。在 使用 MSComm 控件之前要进行初始化, 建立起与串 行端口的连接。在通信控件的属性页中设置其属性, 要保证和 PLC 通讯参数一致。
1 引言
随着工业控制要求的不断发展,上位机监控已 基本成为集散控制系统所不可缺少的部分。一般情 况下, 在大型的集散控制系统中都是用专业工控组 态软件制作上位机的监控界面, 而以 PLC 厂家所推 荐 的 DDE SERVER 作 为 联 系 上 位 机 和 PLC 的 桥
梁。操作员站采用工控组态软件实现画面监控。由于 这种方案成本较高, 所以在很多小型的集散控制系 统中,趋向于采用通用工程软件,如 DELPHI,VISUAL BASIC,VISUAL C++ 等编制上位机监控界面。同时, 在一些实时性要求较高的监控应用中, 用 VISUAL BASIC 等工具可实现更底层的控制, 在硬件配置相 同时系统响应比工控组态软件要快。由于本方案将
2. 1 PLC介绍
OMRON 可编程控制器 SYSMAC CP1H 是最新 的超高速的一体化紧凑型 PLC。它整合了 CPM2A 和 CJ1 系列 PLC 的优点。内置数字 I/O、高速计数、 脉冲输出、模拟输入和输出功能,提供了极大的灵活 性。编程电缆只需要标准的 USB 线缆,使用快捷方 便。配备与 CS/CJ 系列共通的体系结构,与以往产品 CPM2A 40 点输入输出型尺寸相同,但处理速度可 达到约 10 倍的性能。CP1H PLC 提供了两个通讯口, 可 进 行 RS- 232C 通 信 和 RS- 422A/485 通 信 。 将 CPU 单元前面的拨动开关 SW4 (若选用串行端口 1)或者 SW5(若选用串行端口 2)设定为 OFF(出 厂时设定)。并且将串口设置中的模式设为 host link 模式。RS232 端口根据 PLC 系统设定的串行端口设 定的值进行动作。初始值:高位链接(9600 位 /s、启 动位 1 位、数据长 7 位、偶数校验、结束位 2 位)。
其中:
起始符— ——@ 节点号— ——指定与上位机通讯的 PLC(在
4. 2 串行口初始化
常用属性如下 Comport:设置通讯中,指定用于通讯的串口号。
http://www.cicma g.com
2009·1· (总第 116 期) 81
应用
CIC 中国集成电路
China lnte gra te d Circult
Abstract: With the de ve lopme nt of indus tria l a utoma tion, P LC a nd compute r be come s more a nd more e xte ns ive ly us e d in indus try. To pla y the ir pote ntia l to the full e xte nt, communica tion of P LC a nd compute r be come s more a nd more freque nt. Ta king OMRON CP 1H P LC a s a n e xa mple , this pa pe r introduce s a communica tion me thod be twe e n compute r a nd P LC by us ing VB progra mming. This s olution ha s s imple ha rdwa re s tructure a nd is fle xible . It ha s gre a t re fe re nce va lue for re a lizing HMI of s ma ll to middle -s ize d control s ys te m. Keywords: Vis ua l Ba s ic 6.0;P LC;S e ria l Communica tion
3. 2 上位机和可编程控制器之间的通讯 协议
上 位 机 链 接 通 信 使 用 的 是 OMRON 的 Host Link 协议,在一次交换中传输的命令或应答的数据 被称为一帧,一帧最多可包含 131 个数据字符。 OMRON CP1H 编程手册介绍了两种通讯方式,第一 种是由上位机向 PLC 发初始命令, 而第二种是由 PLC 向上位机发初始命令。前一种方式用得较多。系 统使用 HOST- LINK 通信协议进行通信,上位机具
行结果返回上位机,二者以通信帧为单位,轮流交换
正文— ——设置命令参数
数据。通信时一组传送的数据称为“块”,它是命令
校验码— ——设置两字符的帧检查顺序码,
或响应的单元的数据块称为命令块,反过来,从 用于校验。它是从“@”开始到正文结束的所有字符
HOST- LINK 单元发送到上位机的数据块称为响应 的 ASCII 码按位异或运算的结果。
机响应格式
束。响应块中还包括反应执行结果的响应码。图 2
所示为数据传送时程序流程图。
其中:
起始符— ——@
节点号— ——指定与上位机通讯的 PLC(在
PLC 串口设置中设置)
命令码— ——和上位机所发命令相同
结束码— ——命令结束状态 (如:00 表示正
常完成,01 表示在 RUN 模式下无法执行)
3 通讯的实现
3. 1 上位机和可编程控制器之间的硬件 连接
我们用电缆将其 RS- 232C 通信板与计算机串 口相连,即可构成一个简单的监控线路,如图所示。
图 1 PLC与计算机连接示意图
当然,可以实现对多台进行监控,当 1 台上位机 同 时 和 N 台 PLC 通 讯 时 , 可 通 过 NT- AL001 把 RS- 232转换成 RS- 422 可实现和多台 PLC 的通讯。
2. 2 VB介绍
VISUAL BASIC 6.0 中提供了一种实现串口通 讯的 MSComm 控件。该控件可完成对串口的读写工 作,从而实现与 PLC 的通讯,为此需正确设置它的 一些属性。MSComm 控件的属性有许多,其中一些需 要在编程时设置,另一些则取默认值即可,具体置方 法可参见相关资料。MSComm 控件有两种通信方式, 查询方式和事件驱动方式。事件驱动法:OnComm 事 件是 MSComm 控件提供的唯一的事件, 当有数据到 达端口或端口状态发生改变或通信错误产生时,都 将触发 OnComm 事件, 以捕获和处理这些通信事件 和通信中产生的错误,通过查询 CommEvent 属性值,
Setting:进行通讯设置,例如对于 OMRON CP1H PLC,一般设置为“9600,7,2,e”,它的含义为:波特 率为 9600,7 个数据位,2 个停止位,偶校验,它的设 置必需和 PLC 的通讯设置一致。
Portopen:读取和设置口的状态,串口在程序运 行时需且只需打开一次。
Inputlen:指定每次能从输入缓冲区中读取的字 符数,一般采用默认值 0,即一次可把输入缓冲区中 的所有字符读入。
Inbuffersize:输入缓冲区大小,一般采用默认值 即可。
Outbuffersize:输出缓冲区大小,一般采用默认值 即可。
Output:向串口写数。 Input:从串口读数。 Inbuffercount:用来判断输入缓冲区内的字符数。 其详细内容请参考参考文献[2]。 初始化程序如下 Private Sub Initialize() MSComml.Commport = 1 MSComml.Setting =“9600 ,e ,7 ,2” MSComml.PortOpen = True MSComml.Inpulen = 0 MSComml.InputMode = ComInputModeText MSComml.Handshaking = ComNone MSComml.Inbuffersize = 1024 End Sub
2 通讯硬件及软件介绍
可以获得关于通信事件和通信错误的完整信息,进 而进行处理。查询法:MSComm 控件的 CommEvent 属 性返回通信中产生的事件和错误类型, 由通信控件 自动检测和跟踪通信状态后设置。因此,程序员可以 在每个重要的程序功能之后检查 CommEvent 属性 值来检测事件和通信错误。当然,要完成正常的通信 功能, 还必须正确设置 CommEvent 控件的相关属性 值。
CIC 中国集成电路 China lnte gra te d Circult
应用
用 VB 实现上位机 与 OMRON P LC 串行通讯
杨利宣,刘大全 (上海微松半导体设备有限公司, 上海 201114)
摘要: 随着工业自动化的发展,PLC 与计算机在工业中的应用越来越广泛,为了充分发挥它们的各自优 越性,PLC与个人计算机间的通讯越来越频繁。本文以 OMRON 小型 PLC CP1H为例,介绍了如何用 VB 编 程软件实现上位机和 PLC的串行通讯。该方案具有硬件简单,使用灵活的特点。对中小型控制系统实现 人机界面有一定的参考价值。 关健词: Vi s ual Bas i c 6. 0;可编程控制器;串行通讯
而 OMRON CP1H PLC 由于很多区的信息在 PLC 处 于“运行”模式时都是不可写的,若需要写入,必须 先通过 SC 命令码把 PLC 置为“监控”模式,写入成 功后再把 PLC 改回“运行”模式。根据协议,可以得 到命令格式如下:
下面, 以向 DM 区 D0200 为始的单元写入一个 字”1234”为例说明。写多个字时, 只须将“1234”换 成多个需写入的字即可。始果要读以 D0200 为起始 单元的数据,只须将 Data 字符串中“W”改为“R”, 并将“1234”改为须读入的字数便可。对于 DM 区 PLC 上电(OFF→ON)或模式切换(程序模式←→ 运行模式 / 监视模式间的切换) 时也可保持数据。
Serial Communication between Computer and PLC by Using VB Programming
YANG Li-xuan,LIU Da-quan (Shanghai MICSON Semiconductor Equipment Co., Ltd. Shanghai 201114,China)
http://www.cicma g.com
2009·1· (总第 116 期) 79
应用
CIC 中国集成电路
China lnte gra te d Circult
高级语言引入工控网络的监控中, 对于那些有兴趣 自行开发上位机控制软件的开发人员, 将有一定的 借鉴作用。本文将以在实际工程中运用 VB 实现上 位机和 OMRON CH1H PLC 的通讯为例, 向大家介 绍一种简单可靠,易于掌握的通讯方案。
块。多点通信时,可作为单帧发送的最大数据块为
终止符— ——设置 “*” 和 “回车”(CHR
131 个字符,因此当一个数据块含有 132 或更多个 $(13))两个字符表明命令结束。当 PLC 收到上位
数据块时,要分成两帧或多帧发送。每个数据块都 机的命令后,会以下述格式应答。
以设备号及标题开始,以校验码(FCS)及结束符结 PLC到上位
80 (总第 116 期) 2009·1·
http://www.cicma g.com
CIC 中国集成电路 China lnte gra te d Circult
应用
有传送优先权,总是首先发出命令并启动通信, PLC 串口设置中设置)
HOST LINK 单元收到命令交由 PLC 执行,然后将执
命令码— ——设置两个字节的命令码
正文— ——仅在有读数据时生成
校验码— ——用于校验,由 PLC 计算给出,
同上位机的 FCS 计算方法相同,可用来判断 PLCቤተ መጻሕፍቲ ባይዱ传
来的应答是否可靠
终止符— ——设置 “*” 和 “回车”(CHR
$(13))两个字符表明命令结束。
4 通讯程序实例
图 2 数据传送程序流程图
上位机链接命令可参考相应 PLC 的编程手册, 其基本格式如下:
上位机发送命令的格式
上位机到 PLC 命令格式
4. 1 在 VB中添加控件
在窗体中添加 MSComm 控件 MSCommSet 和一 个时钟控件 Timerl,时钟控件用来处理通信超时。在 使用 MSComm 控件之前要进行初始化, 建立起与串 行端口的连接。在通信控件的属性页中设置其属性, 要保证和 PLC 通讯参数一致。
1 引言
随着工业控制要求的不断发展,上位机监控已 基本成为集散控制系统所不可缺少的部分。一般情 况下, 在大型的集散控制系统中都是用专业工控组 态软件制作上位机的监控界面, 而以 PLC 厂家所推 荐 的 DDE SERVER 作 为 联 系 上 位 机 和 PLC 的 桥
梁。操作员站采用工控组态软件实现画面监控。由于 这种方案成本较高, 所以在很多小型的集散控制系 统中,趋向于采用通用工程软件,如 DELPHI,VISUAL BASIC,VISUAL C++ 等编制上位机监控界面。同时, 在一些实时性要求较高的监控应用中, 用 VISUAL BASIC 等工具可实现更底层的控制, 在硬件配置相 同时系统响应比工控组态软件要快。由于本方案将
2. 1 PLC介绍
OMRON 可编程控制器 SYSMAC CP1H 是最新 的超高速的一体化紧凑型 PLC。它整合了 CPM2A 和 CJ1 系列 PLC 的优点。内置数字 I/O、高速计数、 脉冲输出、模拟输入和输出功能,提供了极大的灵活 性。编程电缆只需要标准的 USB 线缆,使用快捷方 便。配备与 CS/CJ 系列共通的体系结构,与以往产品 CPM2A 40 点输入输出型尺寸相同,但处理速度可 达到约 10 倍的性能。CP1H PLC 提供了两个通讯口, 可 进 行 RS- 232C 通 信 和 RS- 422A/485 通 信 。 将 CPU 单元前面的拨动开关 SW4 (若选用串行端口 1)或者 SW5(若选用串行端口 2)设定为 OFF(出 厂时设定)。并且将串口设置中的模式设为 host link 模式。RS232 端口根据 PLC 系统设定的串行端口设 定的值进行动作。初始值:高位链接(9600 位 /s、启 动位 1 位、数据长 7 位、偶数校验、结束位 2 位)。
其中:
起始符— ——@ 节点号— ——指定与上位机通讯的 PLC(在
4. 2 串行口初始化
常用属性如下 Comport:设置通讯中,指定用于通讯的串口号。
http://www.cicma g.com
2009·1· (总第 116 期) 81
应用
CIC 中国集成电路
China lnte gra te d Circult
Abstract: With the de ve lopme nt of indus tria l a utoma tion, P LC a nd compute r be come s more a nd more e xte ns ive ly us e d in indus try. To pla y the ir pote ntia l to the full e xte nt, communica tion of P LC a nd compute r be come s more a nd more freque nt. Ta king OMRON CP 1H P LC a s a n e xa mple , this pa pe r introduce s a communica tion me thod be twe e n compute r a nd P LC by us ing VB progra mming. This s olution ha s s imple ha rdwa re s tructure a nd is fle xible . It ha s gre a t re fe re nce va lue for re a lizing HMI of s ma ll to middle -s ize d control s ys te m. Keywords: Vis ua l Ba s ic 6.0;P LC;S e ria l Communica tion
3. 2 上位机和可编程控制器之间的通讯 协议
上 位 机 链 接 通 信 使 用 的 是 OMRON 的 Host Link 协议,在一次交换中传输的命令或应答的数据 被称为一帧,一帧最多可包含 131 个数据字符。 OMRON CP1H 编程手册介绍了两种通讯方式,第一 种是由上位机向 PLC 发初始命令, 而第二种是由 PLC 向上位机发初始命令。前一种方式用得较多。系 统使用 HOST- LINK 通信协议进行通信,上位机具
行结果返回上位机,二者以通信帧为单位,轮流交换
正文— ——设置命令参数
数据。通信时一组传送的数据称为“块”,它是命令
校验码— ——设置两字符的帧检查顺序码,
或响应的单元的数据块称为命令块,反过来,从 用于校验。它是从“@”开始到正文结束的所有字符
HOST- LINK 单元发送到上位机的数据块称为响应 的 ASCII 码按位异或运算的结果。
机响应格式
束。响应块中还包括反应执行结果的响应码。图 2
所示为数据传送时程序流程图。
其中:
起始符— ——@
节点号— ——指定与上位机通讯的 PLC(在
PLC 串口设置中设置)
命令码— ——和上位机所发命令相同
结束码— ——命令结束状态 (如:00 表示正
常完成,01 表示在 RUN 模式下无法执行)
3 通讯的实现
3. 1 上位机和可编程控制器之间的硬件 连接
我们用电缆将其 RS- 232C 通信板与计算机串 口相连,即可构成一个简单的监控线路,如图所示。
图 1 PLC与计算机连接示意图
当然,可以实现对多台进行监控,当 1 台上位机 同 时 和 N 台 PLC 通 讯 时 , 可 通 过 NT- AL001 把 RS- 232转换成 RS- 422 可实现和多台 PLC 的通讯。
2. 2 VB介绍
VISUAL BASIC 6.0 中提供了一种实现串口通 讯的 MSComm 控件。该控件可完成对串口的读写工 作,从而实现与 PLC 的通讯,为此需正确设置它的 一些属性。MSComm 控件的属性有许多,其中一些需 要在编程时设置,另一些则取默认值即可,具体置方 法可参见相关资料。MSComm 控件有两种通信方式, 查询方式和事件驱动方式。事件驱动法:OnComm 事 件是 MSComm 控件提供的唯一的事件, 当有数据到 达端口或端口状态发生改变或通信错误产生时,都 将触发 OnComm 事件, 以捕获和处理这些通信事件 和通信中产生的错误,通过查询 CommEvent 属性值,
Setting:进行通讯设置,例如对于 OMRON CP1H PLC,一般设置为“9600,7,2,e”,它的含义为:波特 率为 9600,7 个数据位,2 个停止位,偶校验,它的设 置必需和 PLC 的通讯设置一致。
Portopen:读取和设置口的状态,串口在程序运 行时需且只需打开一次。
Inputlen:指定每次能从输入缓冲区中读取的字 符数,一般采用默认值 0,即一次可把输入缓冲区中 的所有字符读入。
Inbuffersize:输入缓冲区大小,一般采用默认值 即可。
Outbuffersize:输出缓冲区大小,一般采用默认值 即可。
Output:向串口写数。 Input:从串口读数。 Inbuffercount:用来判断输入缓冲区内的字符数。 其详细内容请参考参考文献[2]。 初始化程序如下 Private Sub Initialize() MSComml.Commport = 1 MSComml.Setting =“9600 ,e ,7 ,2” MSComml.PortOpen = True MSComml.Inpulen = 0 MSComml.InputMode = ComInputModeText MSComml.Handshaking = ComNone MSComml.Inbuffersize = 1024 End Sub
2 通讯硬件及软件介绍
可以获得关于通信事件和通信错误的完整信息,进 而进行处理。查询法:MSComm 控件的 CommEvent 属 性返回通信中产生的事件和错误类型, 由通信控件 自动检测和跟踪通信状态后设置。因此,程序员可以 在每个重要的程序功能之后检查 CommEvent 属性 值来检测事件和通信错误。当然,要完成正常的通信 功能, 还必须正确设置 CommEvent 控件的相关属性 值。
CIC 中国集成电路 China lnte gra te d Circult
应用
用 VB 实现上位机 与 OMRON P LC 串行通讯
杨利宣,刘大全 (上海微松半导体设备有限公司, 上海 201114)
摘要: 随着工业自动化的发展,PLC 与计算机在工业中的应用越来越广泛,为了充分发挥它们的各自优 越性,PLC与个人计算机间的通讯越来越频繁。本文以 OMRON 小型 PLC CP1H为例,介绍了如何用 VB 编 程软件实现上位机和 PLC的串行通讯。该方案具有硬件简单,使用灵活的特点。对中小型控制系统实现 人机界面有一定的参考价值。 关健词: Vi s ual Bas i c 6. 0;可编程控制器;串行通讯
而 OMRON CP1H PLC 由于很多区的信息在 PLC 处 于“运行”模式时都是不可写的,若需要写入,必须 先通过 SC 命令码把 PLC 置为“监控”模式,写入成 功后再把 PLC 改回“运行”模式。根据协议,可以得 到命令格式如下: