MCGS组态软件相关技术--MCGS串口父设备使用技巧 点击:3958 | 回复:1



zhhh

    
  • 精华:17帖
  • 求助:0帖
  • 帖子:43帖 | 0回
  • 年度积分:0
  • 历史总积分:211
  • 注册:2002年2月27日
发表于:2003-12-22 09:27:00
楼主
1 通用串口父设备 通用串口父设备是提供串口通讯功能的父设备,下面可以挂接所有通过串口连接的设备,提供通过Modem进行远程采集或远程监听的功能。并可以在运行时动态改变拨出的电话号码。
在基本属性页中,设置了串口的基本属性,包括端口号,通讯波特率,数据位位数,停止位位数,数据校验方式,这些设置可以按照设备的要求来设置。 数据采集方式规定了串口父设备下的子设备的采集方式,使用同步采集时,所有子设备都按照父设备的采集周期依次采集。使用异步采集时,每个子设备可以设置自己的采集时间,在需要的时候采集。甚至子设备可以把采集时间设置为0,使得此子设备在一般情况下不采集,只在使用设备命令采集一次的时候才采集数据。 如果只是使用串口来进行通讯,进行这些设置就足够了。但是如果想要使用MCGS内建的电话访问功能,就需要进行电话连接属性页的设置。
在这一页的设置中,如果不选择第一个选择框“使用Modem通讯”,就只能使用RTS延时控制的功能,选择使用RTS延时控制后,可以设置两个等待时间,这两个等待时间的作用是对RTS信号进行翻转后,延时等待的时间,假设这两个时间分别为t1和t2,则整个通讯过程为:RTS信号开,延时t1毫秒后,上位机开始发送数据,数据发送完毕后,延时t2毫秒后,RTS信号关,上位机开始等待数据到达。此功能主要使用于半双工的无线电台,部分Hart-232转换器和部分半双工的通讯转换器,这些转换器都要求在数据发送前,在RTS上建立高电平信号,通知转换器处于发送状态,发送完毕后,接收数据前,把RTS信号置低,使得转换器处于接收状态。通过仔细的调整延时时间的长短,可以保证系统工作的稳定可靠。 如果选择了选项” 使用Modem通讯”,则可以使用Modem来进行Modem通讯。
如图,选择使用Modem通讯之后,以下一些功能就可以设置了。 子设备电话号码:在这里设置每个子设备的电话号码。设置了电话号码的子设备采集或处理设备命令时,将自动拨通这个电话,然后进行设备采集处理。如果没有设置电话号码,则这个子设备只是设备主动拨通上位机时才能通讯(不是所有的硬件设备都能主动拨通上位机)。电话号码中可以使用各种AT拨号字符,如:0,804表示先拨0,等待拨号音响起,然后再拨剩下的电话号码804,这个功能可以用于分机拨外线时的拨号。 通讯后挂断电话:使用这个选项,当子设备拨通自己的电话号码并完成采集工作后,将挂断电话。这个性能主要应用于每个子设备自己有自己的电话号码,而且电话线不宜长时间占用的情况,如使用Modem在整点时查询一组设备的值,之后挂断电话,就应该使用这个选项。但是如果想要使用Modem连续采集某个设备的值,直到改变连接到另一个设备为止,就应该去掉这个选项,否则子设备每次通讯都会重新拨号。 电话占线时重试:使用这个选项,可以在通讯时,遇到对方电话占线后,等待规定的秒数后,重新拨号,通常,等待一到两分钟后重试,重试次数在3次左右比较合适。 错误状态输出连接:使用这个选项,并连接一个字符串变量后,在串口通讯父设备拨号时,将把当前拨号状态输出到这个字符串变量中。 响铃次数:响铃次数设定了上位机在监听状态时,电话响铃多少次后接听电话,通常设置为1次。 初始化远程MODEM:使用这个按钮,可以按照当前的串口设置,响铃次数来初始化远程使用的Modem。 串口通讯父设备的设备命令: l ChangePort(端口号) 这个命令将在运行时改变串口父设备连接的串口。端口号是一个数值,1对应端口1,2对应端口2,依次类推。 l ChangePhone(子设备名,电话号码) 使用这个命令可以在运行时改变子设备连接的电话号码。 这个设备命令是发送给父设备的,电话号码部分直接写改变后的电话号码,也可以连接字符型变量,但要把其改为字符串。例如:ChangePhone(子设备名,”+phone+”),其中phone是字符型变量。 特别要注意的是,挂断电话时,设备命令为ChangePhone(子设备名,) l CallPhone(电话号码的字符串) 命令串口通讯父设备拨通指定的电话号码。使用这个命令时,应该配置串口父设备不使用Modem通讯,否则内建的Modem通讯策略会覆盖这个电话号码。 这个命令通常用于完全由设备命令来建立电话连接。 l ListenPhone() 命令串口通讯父设备挂断电话并处于接听状态。与上一个命令CallPhone一样,这个命令通常只在完全由设备命令来建立电话连接时使用。 使用Modem进行通讯,有多种连接方式,通讯呼出与建立方式,拨号时间安排以及拨号号码的变化。针对这些通讯方式的使用,下面来一一列举使用方法。 首先,为了进行这些试验,需要准备如下器材:Modem两台或更多(如果需要进行多台设备的轮巡拨号采集),建议使用外置Modem,这样可以方便的观察Modem的状态,也能够排除由于内置Modem安装不正确引起的一系列问题,另外,某些非常便宜的Modem尤其是软Modem,缺少保留Modem设置的功能,不能用于远程数据通讯。电话线两根或更多(轮巡拨号),也可以使用一台小型的电话交换机。需要通讯的设备,如西门子PLC S7-200,如果需要通讯的设备是485协议的,还需要准备485转换模块(S7-200PLC就需要这个转换模块),以及用于组态的计算机一台,用于连接的电线若干。 其次,我们需要明确几个概念: 1、 上位机,用于上位通讯的计算机,通常就是用户组态使用的计算机。 2、 远程设备,在本例里,就是S7-200。 3、 本地Modem,通过232接口与上位机连接的Modem。 4、 远程Modem,通过232接口与远程设备连接的Modem,在本例里,还需要通过232-485转换模块。 实验1:使用MCGS的远程采集功能来采集S7-200的数据。 1、 检查PLC设备和485转换模块是否正常。 在设备组态窗口中,创建一个串口通讯父设备,在父设备下面创建一个S7-200 PPI子设备,在子设备属性对话框中,按下帮助按钮,可以弹出S7-200的使用帮助,按照S7-200 PPI驱动中的帮助,设置串口通讯父设备的串口号和波特率,以及子设备的地址号,以本地通讯方式与S7-200设备建立通讯连接,然后按照S7-200中的帮助进行硬件连接,如果组态和连接全部正确,在通讯测试页中,可以看到通讯成功标志。如果通讯不成功,可以按照S7-200驱动的帮助,排除错误。 2、 初始化远程Modem。 从串口上取下与232-485转换模块的连线,连接上一个Modem,准备把他初始化成远程Modem。打开上一步组态的串口通讯父设备的属性页,切换到第二页电话连接,选择使用电话连接。按下初始化远程Modem按钮,MCGS将按照串口父设备中有关波特率,校验,以及等待响铃次数等设置初始化远程Modem,此时应该注意这些配置与设备通讯要求的配置一致。在短暂的发送数据后,MCGS将报告远程Modem初始化是否成功。如果不成功,应该检查一下连线是否正确,如果连线正确,在初始化Modem按钮按下的瞬间,Modem的发送和接收指示灯应该短暂闪烁。如果发送和接收指示灯闪烁而仍然报告初始化不成功,说明Modem没有能够正确的处理的MCGS发出的AT指令,在某些过分便宜的Modem中,经常容易因为内部Flash存储器失效而引起这些问题。 初始化Modem成功后,断开Modem的电源,从计算机上取下Modem,然后,在没有连接任何设备的情况下,给Modem上电,此时,Modem上的AA灯(自动应答指示)应该点亮,否则,此Modem不会自动接听电话。 同时,Modem上的TR灯(终端就绪指示)也应该点亮,否则Modem也不会接听电话,在某些Modem中会发生这种情况。如果发生这种情况,最好的办法是更换Modem,如果必须要使用这个Modem,应该把这个Modem的第4脚和第6脚连通,这样,人为地提供了一个终端就绪信号,这就使得TR灯点亮了。 此时,给这个Modem插上电话线,向这条电话线拨号,这个Modem应该自动接听,并发出Modem握手的声音。否则说明Modem初始化没有成功,可以换一个其他型号的Modem来测试。 3、 连接远程设备 把远程Modem和232-485转换模块连接起来,注意,必须把Modem的发送脚连接到转换模块的接收脚,把Modem的接收脚连接到转换模块的发送脚。把232-485转换模块和S7-200连接起来(这在第一步中应该已经完成了)。 4、 连接本地Modem 把另一个Modem连接到上位机上,并把电话线连接好。 5、 测试通讯 在串口通讯父设备属性页中,填写S7-200子设备对应的电话号码。选择错误状态输出,然后连接到一个字符型变量上,以便在运行环境中提示拨号状态。关闭父设备的属性页,打开子设备的属性页,切换到测试页上,MCGS应该向Modem发送数据,开始拨号,拨号完毕后,远程Modem应该自动应答,并接听电话,开始Modem握手过



郁闷

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 8回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2003年8月11日
发表于:2003-12-22 09:27:00
1楼
通讯不稳定一般怎么解决?能不能告诉我你们的通讯命令的发送规律,比方说字节之间的发送间隔,还有命令块发送的时间规律。我想改程序逻辑的话,就得用到你们的规律。我用其它软件观察,好像是你发送第一次的命令我接收正确,我接收]后回送数据,这时就跟你的第二次命令冲突,这是我的主观猜测,要不不能出现我的程序与其它通讯软件稳定通讯的问题。你所谓的“选择使用RTS延时控制,仔细调节RTS关闭延时为大约150~250毫秒之间,就可以建立起通讯。” 这里是指的调节通信延时吗?他具体还有什么作用?我怎么用着没什么太重要的作用啊! 用了你们的4011模块通信确实很稳定,可是为什么我的会出现设备窗口里的数据显示是实时传送上来的,而动画通信窗口里不显示出来呢?这也是相比较4011模块的通信而言的,要不给我你们的4011的通信程序看看,只这一段,当然不勉强,我只是希望尽快解决。 你们动画窗口通信跟设备调试窗口应该是一致的ba?连接本身绝对没问题,我现在只是想解决动画窗口实时显示数据就可以了,现在正好相反,设备调试窗口可以实现,而动画窗口里不能实现,但是改为接收一次命令再连续发送几次数据才可以显示这又是什么逻辑,帮帮我了,谢谢! 重庆煤科院 柳玉磊

热门招聘
相关主题

官方公众号

智造工程师