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握手过