发表于:2008/9/9 10:46:00
#0楼
s7-200 以其较低的成本和丰富的功能在各种控制系统中得到了广泛的应用,尤其是s7-200的自由口通讯功能,为各种仪表可靠地接入plc系统提供了方便。s7-200 cpu 一般带一到两个rs485口,与具备rs485通讯功能的仪表联网非常方便。但许多仪表只有rs232口,要把其接入plc,则必须加rs232到rs485的转换器,如果多台仪表需要接入同一个rs485口,则必须通过带地址选通功能的rs232/rs485的转换器,以轮询方式与每一台仪表通讯,最终实现联网数据传送,对于数据传送量不大的场合,不失为一种经济、实用的解决方案。
本例为s7-200借助艾林科p580a 带地址选通功能的rs232/rs485的转换器,实现s7-200 plc 与多台panther仪表通讯功能。 程序使用s7-200 通讯口1通过1-8 路艾林科带地址的rs232/rs485 转换器连接1-8 路panther仪表,将各路重量数据采集到plc,按顺序存储在vb存储器中。在主程序中循环调用通讯程序即可完成各路仪表数据的采集,采集周期不超过500ms,程序能够自动判断各路转换器和称重仪表工作是否正常,某一路或某几路出现故障,不影响其它路通讯。程序组成及调用方法如下:
调用时要求将要存储各路重量的vb存储器的起始地址传递给通讯主程序输入参数databuf,建议首地址设为vb1900,输入数据格式为&vb1900,也可以设定为其它地址,但应避免与其它程序数据冲突,通讯程序运行时只能读此数据区,不能写,否则会造成通讯程序错误。每路重量数据占8个字节,前7个字节为重量数据的ascii码,包括小数点,最后一个字节为标志字节,‘g’ 表示重量数据为毛重,‘n’ 表示重量数据为净重,‘e’ 表示通讯超时或通讯错误。本程序最多可带8 路,调用时应将所需路数传递到输入参数chenalnum,数据格式可为十六进制或无符号数。
panther仪表通讯口应设为:波特率9600,7位数据位,1位停止位,偶校验,发送首字符和校验和,命令方式发送数据。另外,应将仪表的动态侦测功能设为禁止状态。
艾林科带地址的rs232/rs485 转换器应设为:波特率9600,地址分别设为1-n,地址应连续。
本程序运行时还需要占用48个连续的vb存储单元作为数据暂存区,在把程序下载到plc之前应设定此vb数据区的首地址,方法是在左侧导航栏程序块分支中找到‘库’显示项,鼠标在‘库’显示项上右击,选择库存储区选项,设定一个起始地址即可,建议此地址设为vb2000。注意此暂存区不要与其它数据区重叠,其他程序也不能读写此数据区,否则会造成通讯程序错误。注意设定的重量数据存储区也不能与数据暂存区重叠。
程序占用了中断int_127 和所有的10ms ton 定时器,其它程序不能再使用。
程序的mcom_init模块为通讯初始化程序,应在程序开始调用,前面加常开接点sm0.1。
程序的mcom_main模块为通讯主程序,应在程序开始循环调用,前面加常开接点sm0.0。
程序的int_127 模块为中断程序,由mcom_main模块调用,不需要调用程序处理。
本程序仅供同行在学习、研究、交流中使用,作者不对程序使用过程中可能发生的风险承担任何责任,未经作者本人授权,不得将此程序用于盈利或任何商业目的。版权所有 刘占阳 2008 -2018年,保留所有权利。
需要程序的朋友可给我留言联系。我的邮箱: yanceyleo◎yahoo.com.cn
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=61694&Name=yanceyleo
本例为s7-200借助艾林科p580a 带地址选通功能的rs232/rs485的转换器,实现s7-200 plc 与多台panther仪表通讯功能。 程序使用s7-200 通讯口1通过1-8 路艾林科带地址的rs232/rs485 转换器连接1-8 路panther仪表,将各路重量数据采集到plc,按顺序存储在vb存储器中。在主程序中循环调用通讯程序即可完成各路仪表数据的采集,采集周期不超过500ms,程序能够自动判断各路转换器和称重仪表工作是否正常,某一路或某几路出现故障,不影响其它路通讯。程序组成及调用方法如下:
调用时要求将要存储各路重量的vb存储器的起始地址传递给通讯主程序输入参数databuf,建议首地址设为vb1900,输入数据格式为&vb1900,也可以设定为其它地址,但应避免与其它程序数据冲突,通讯程序运行时只能读此数据区,不能写,否则会造成通讯程序错误。每路重量数据占8个字节,前7个字节为重量数据的ascii码,包括小数点,最后一个字节为标志字节,‘g’ 表示重量数据为毛重,‘n’ 表示重量数据为净重,‘e’ 表示通讯超时或通讯错误。本程序最多可带8 路,调用时应将所需路数传递到输入参数chenalnum,数据格式可为十六进制或无符号数。
panther仪表通讯口应设为:波特率9600,7位数据位,1位停止位,偶校验,发送首字符和校验和,命令方式发送数据。另外,应将仪表的动态侦测功能设为禁止状态。
艾林科带地址的rs232/rs485 转换器应设为:波特率9600,地址分别设为1-n,地址应连续。
本程序运行时还需要占用48个连续的vb存储单元作为数据暂存区,在把程序下载到plc之前应设定此vb数据区的首地址,方法是在左侧导航栏程序块分支中找到‘库’显示项,鼠标在‘库’显示项上右击,选择库存储区选项,设定一个起始地址即可,建议此地址设为vb2000。注意此暂存区不要与其它数据区重叠,其他程序也不能读写此数据区,否则会造成通讯程序错误。注意设定的重量数据存储区也不能与数据暂存区重叠。
程序占用了中断int_127 和所有的10ms ton 定时器,其它程序不能再使用。
程序的mcom_init模块为通讯初始化程序,应在程序开始调用,前面加常开接点sm0.1。
程序的mcom_main模块为通讯主程序,应在程序开始循环调用,前面加常开接点sm0.0。
程序的int_127 模块为中断程序,由mcom_main模块调用,不需要调用程序处理。
本程序仅供同行在学习、研究、交流中使用,作者不对程序使用过程中可能发生的风险承担任何责任,未经作者本人授权,不得将此程序用于盈利或任何商业目的。版权所有 刘占阳 2008 -2018年,保留所有权利。
需要程序的朋友可给我留言联系。我的邮箱: yanceyleo◎yahoo.com.cn
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=61694&Name=yanceyleo