通用串口父设备问题 点击:4199 | 回复:3



pangu

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2002年2月05日
发表于:2002-02-28 11:30:00
楼主
我们公司自己开发的驱动,原来是在串口通讯父设备下的,在子设备里设置电话号码,现在发现MCGS里多了个“通用串口父设备”,带电话号码设置的,这两个驱动有什么区别?开发子驱动需要注意什么?“通用串口父设备”的电话如何挂断?



pangu

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2002年2月05日
发表于:2002-02-27 21:06:00
1楼
www.pangu.com.cn

tzzabc

  • 精华:3帖
  • 求助:0帖
  • 帖子:20帖 | 119回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2001年8月09日
发表于:2002-02-28 11:30:00
2楼
pangu: 你好!这两个父设备是通用的,可相互替代,只是各自源代码的编程语言不同而已。推荐您使用“通用串口父设备”。至于您说的开发设备驱动应注意那些事项,您呢一定有我们的软件光盘,那上面有一个高级开发包可协助您完成设备驱动开发,同时光盘中也有相应的电子文档,您可参考。或来电与我们联系交流。最后一个问题我们给您提供一个文档供您参考: 通用串口父设备 通用串口父设备是提供串口通讯功能的父设备,下面可以挂接所有通过串口连接的设备,提供通过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。 串口通讯父设备的设备命令: ChangePort(端口号) 这个命令将在运行时改变串口父设备连接的串口。端口号是一个数值,1对应端口1,2对应端口2,依次类推。 ChangePhone(子设备名,电话号码) 使用这个命令可以在运行时改变子设备连接的电话号码。 这个设备命令是发送给父设备的,电话号码部分直接写改变后的电话号码,也可以连接字符型变量,但要把其改为字符串。例如:ChangePhone(子设备名,”+phone+”),其中phone是字符型变量。 特别要注意的是,挂断电话时,设备命令为ChangePhone(子设备名,) CallPhone(电话号码的字符串) 命令串口通讯父设备拨通指定的电话号码。使用这个命令时,应该配置串口父设备不使用Modem通讯,否则内建的Modem通讯策略会覆盖这个电话号码。 这个命令通常用于完全由设备命令来建立电话连接。 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握手过程。如果这个过程没有正确进行,可能的原因包括:1、计算机上有其他程序如超级终端占用了串口;2、串口号不正确;3、电话号码填写错误等等。 Modem握手过程完成后,应该看到两边Modem的发送灯和接收灯在闪烁,进行持续通讯。如果握手过程完成后Modem立即挂断,通常是由于远程Modem载波检测错误引起的,这种情况在某些Modem上会发生。更换一个远程Modem或把远程Modem的第一脚和第六脚短接,强制远程Modem载波检测通过。 如果连通后,两边Modem不停的发送数据,但是没有数据接收,可能的原因是远程Modem初始化的状态不正确,请确认初始化远程Modem时,波特率,校验位,数据位,停止位是设置成需要的状态。 如果连通后,两边的Modem不停的发送和接收数据,但是MCGS仍然报告通讯错误,原因可能是由于Modem加入的时延导致设备通讯时序不正确,此时,在串口通讯父设备的组态当中,选择使用RTS延时控制,仔细调节RTS关闭延时为大约150~250毫秒之间,就可以建立起通讯。 6、 实际运行 在组态环境中连接一些PLC变量,并在界面上组态显示这些变量以及错误输出变量,切换到运行环境中,可以看到MCGS自动建立拨号连接,并开始采集数据。 实验2:整点定时采集PLC设备 1、 首先完成实验1内的步骤。 2、 在串口通讯父设备的属性页中,选择异步采集数据。并选择通讯后挂断电话 3、 在子设备的属性页中,设置采集时间为0。 4、 组态一个定时在整点运行的策略,在策略中,调用子设备采集一次。 5、 进入运行并等待整点,此时MCGS将自动拨号,完成一次子设备采集,然后挂断电话。 实验3:动态设定电话号码 1、 完成实验1内的步骤 2、 在需要改变子设备连接的电话号码时,向父设备发送设备命令ChangeChildPhone(子设备名,电话号码的字符串)。此时子设备将自动更换电话号码,注意电话号码要使用双引号括起来。

study12345

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2006年6月08日
发表于:2017-11-10 17:16:06
3楼

电脑上面安装了MCGS通用版组态软件,要想用这个软件与S7-200通信,并监视控制PLC,采用PC/PPI电缆连接,总是显示初始化失败



热门招聘
相关主题

官方公众号

智造工程师