6ES7953-8LM31-0AA0辽阳西门子代理商 6ES7953-8LM31-0AA0辽阳西门子代理商
SIEMENS长沙奈欧自动化设备有限公司
我公司理西门子全系列产品欢迎
来电 电话:13762110473(微信同步)
长沙奈欧自动化设备有限公司
联系人:刘文秀(销售经理)
商务QQ:1533714462
”信誉,客户至上“是公司成立之初所确立的宗旨,在公司的严格要求和员工们不折不扣地贯彻执行下发展延续至今。“假一罚十”一直是我公司的承诺。
【信誉、诚信交易】【长期销售、】
【称心满意、服务动力】【真诚面对、沟通无限】
我公司长期销售西门子PLC模块6ES7331-7KF02-0AB0 6ES7321-1BL00-0AA0 6ES7322-1BL00-0AA0 6ES7332-5HF00-0AB0 6ES7153-1AA03-0xB0 6XV1830-0EH10电缆 6ES7972-0BA12-0xA0接头 6GK1503-3CB00光纤链路模块 6ES7307-1EA00-0AA0 6ES7953-8LJ30-0AA0内存卡 西门子PLC模块315-2DP 6ES7315-2AH14-0AB0 西门子PLC模块6ES7315-2EH14-0AB0 西门子PLC模块6ES7214-2BD23-0xB8 处理6GK7343-1EX30-0xE0 屏66643-0CD01-1AX1 销售西门子6SN1145-1BA02-0CA2
手机:13762110473
公司地址:长沙市岳麓区天顶街道尖山安置公寓楼702
———————————————————————————————————
【服务、一诺千金】【承诺、客户满意】
24小时西门子PLC销售:13762110473微信同步
西门子总公司-长沙奈欧伺服公司经营西门子全新原装现货PLC;S7-200S7-300 S7-400 S7-1200 屏,变频器,6FC,6SN,S120 G120C V90 V80伺服数控备件:原装进口电机(1LA7、1LG4、1LA9、1LE1),国产电机(1LG0,1LE0)大型电机(1LA8,1LA4,1PQ8)伺服电机(1PH,1PM,1FT,1FK,1FS)西门子全新原装产品‘质保一年。 西门子伺服驱动器现货
描述
图. 01
"RDSYSST" 指令的输入/输出
SSL_ID=w#16#37: 读取 S7-300 CPU 的 IP 地址
INDEX=w#16#0: 读取 S7-300 CPU 的 IP 地址
表 02 "RDSYSST"指令的输出参数
SZL_HEADER 结构体
SZL_HEADER: STRUCT
LENTHDR 是SSL 部件列表或 SSL 部件目录的数据记录长度。
SSL 部件列表的目标区域或读取 SSL 部件列表的目录
如果你已经读取到 CPU 的 IP 地址,可在程序中评估。在本例中,IP 地址按照十进制数据保存在数据块 DB1 “DATA”的起始地址 8 中。
下载
描述:
关于集成 PROFINET 口的 CPU 和 WinAC RTX 所支持的通信服务总览,请参见条目18909487 。此总览包含有关集成 PROFINET 口的 CPU 和 WinAC RTX 所支持的开放式 IE 通信协议的信息。
下列通信块可以用于基于 TCP 协议的开放式通信:
这些通信块可以在 Standard Library -> Communication Blocks 下找到。
例程描述:
首先为 S7-300 站创建硬件组态。注意配置 MB100 作为时钟存储器。 发送请求由该时钟存储器触发。保存编译 S7-300 站的硬件组态,下载到 CPU。
STEP 7 程序由 OB100,OB1,FB1, DB11,DB1,DB100,DB200 , FB63,FB64,FB65 和 FB66。
OB100:
OB1:
FB1:
在 "FB63 "TSEND" 的输入参数 "REQ" 上施加上升沿以触发发送请求。发送任务的触发是由时钟标志 M100.6 和变量 "SEND_BUSY" 来控制的。如果发送任务运行, "C1.SEND_BUSY" 则被置位,无法再触发新的发送请求。
如果发送任务成功完成, "SEND_BUSY" 被复位。这时新的发送任务才可以被触发。
一旦 TCP 连接建立了,就能接收数据。
输出参数 "NDR" 用于表示已接收到新数据。输出参数 "RCVD_LEN" 表明接收数据的长度,如果数据接收成功,保存参数 "RCVD_LEN"。
如果数据未被成功接收,那么输出参数 "STATUS" 可以保存下来并用于评估状态。
可以通过 FB66 "TDISCON" 有目的地结束 TCP 连接。在 FB66 "TDISCON" 的输入参数"REQ" 上施加上升沿以请求结束 TCP 连接。
注意:
示例程序中TCP 协议用来数据传输,需在数据结构 "OUCW_2"中设定参数 "connection_type" 为 "B#16#11" 。
S7-300 CPUs V2.3 支持 TCP (兼容模式)。如在S7-300 CPU V2.3 中运行示例程序,需在数据结构 "OUCW_2" 中设定参数 "connection_type" 为 "B#16#01" 。
1、SMS基础知识介绍
注:PDU方式中AT+CMGS命令解释:
其中,红色的数字(3108214365F7)代表对方的手机号码,在PDU格式中,手机号码每两位需要对调。比如在上面这个例子里,对方的手机号码为13801234567,F用来补充7后面的空位。蓝色的数字(59296C14)是短消息内容的Unicode码,这里5929代表“天”6C14代表“气”。Unicode码同样可以用来表示中一般英文字母和数字,方法是在英文或数字的ASCII码前加00。紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的,使用时可以照抄,但前提是所使用的SIM卡在使用前要用手机设置好短消息服务中心号码(+8613800100500)。汉字的Unicode码可以通过编码转换软件得到。
2、网络结构图
硬件
表1、硬件列表
表2、软件列表
4、以TEXT的方式发送SMS
上面库程序是压缩文件,先解压缩到一个目录下,在该目录下又会看到3个压缩文件,再解压这三个压缩文件,解压缩后如下图所示:
从上图中,解压三个压缩文件后Sms_bloc;SMS_MD720_Application;Sms_MD720_Simple
打开后在连接描述的窗口里输入一个连接名如下图:
点击OK后,选择与计算机连接的串口,这里连接的是串口1,所以设置如下图:
在上图点击OK按钮后,设置串口的通讯参数如下:
点击OK按钮后,在出现的串口里先输入 “+++”后,输入“AT”检查与Modem的连接是否正常,若正常则Modem会返回OK,如下图:
然后在输入指令“AT+IRP=9600”修改通讯波特率为9600如下图所示:
修改成功后,把连接计算机上的串口拔下后,把9针口连接到CP341的串口上。
打开Step7 Manger,打开后点击File菜单下的New…,新建一个项目,在新建项目的串口里输入项目SMS_CP341,然后点击新建,项目的硬件组态如下图所示:
双击CP341-RS232C,打开属性窗口如下图:
点击Parameter...,设置串口的通讯协议为
双击Protocol协议包,配置串口通讯的参数如下图:
配置完硬件后,编译并下载硬件组态,然后打开Sms_MD720_Simple项目,并拷贝Sms_MD720_Simple项目下的除OB1功能块外的所有功能块到SMS_CP341项目相应的目录下,同时需要拷贝Source下的源代码到SMS_CP341项目下的Source目录下。
打开OB1块,在OB1里调用FB100,背景数据块为DB100,如下图所示:
在CP_ADR中只需输入CP341的逻辑地址256。输入后保存程序。编写OB1后打开DB100数据块如下图:
这里SIM卡无PIN码,要发送的信息是“Weather”;发送的手机号为“13801234567”;设置DB100的参数如下图:
修改后保存DB100,并下载所有的程序块到CPU中。下载后打开打开变量监控表并在线监控,如下图:
在变量监控表里先置位”SMS”.b_init,然后在置位”SMS”.SEND,等待一会儿,可以看到变量监控表里的”SMS”.n_status当置位”SMS”.b_init时会从1002变成201,然后当置位”SMS”.SEND时会从201变成202、204、206,过一会儿又回到201的值,这样接可以再目的手机上接收到“Weather”的短信。
注意:如果例子项目文件打不开,请把计算机的语言设置为德语。
打开后如下图:
修改源程序代码MD720_SMS_Textmode := '$R$LAT+CMGF=1$R'为MD720_SMS_Textmode := '$R$LAT+CMGF=0$R'如下图所示:
str_outbox := SMS_Textmode_Attr;改为str_outbox :=MD720_SMS_Textmode;如下图:
修改后,点击File下Save,然后再点击File下的Complie,如下图:
关闭SCl编辑窗口,若发送的目的手机号为13801234567发送的内容为“天气”打开DB100,修改发送参数如下图:
如何使用程序读取运行中 S7-300 CPU的 IP 地址?
在S7-300 CPU 中通过调用 "RDSYSST" 指令可以读取 IP 地址。 通过 "RDSYSST" 指令可读取部件列表或系统状态列表的部件目录(SSL 或德语的 SZL)。 通过 SSL ID 和 INDEX 指定部件列表或部件列表中一个对象的部件列表目录及类型或者数量。使用SSL ID = 37 (hex) 和 INDEX = 0 (hex) 来读取 S7-300 CPU 的 IP 地址。
表 01 "RDSYSST" 指令的输入参数.
表 01
参数
数据类型
描述
REQ
BOOL
REQ=1: 触发执行
SSL_ID
WORD
将要读取的系统状态列表或部分列表的ID号
INDEX
WORD
部分列表中对象的类型或编号
表 02
参数
数据类型
描述
RET_VAL
INT
如果执行中程序出错,RET_VAL 参数会返回故障代码。
BUSY
BOOL
TRUE:读指令尚未执行完毕。
SZL_HEADER
STRUCT
SZL_HEADER 是个结构体。详细结构介绍在"SZL_HEADER 结构体".
DR
ANY
读取SSL的部件列表或SSL部件列表的目录的目标区域。
SZL_Header 输出是按照以下结构定义的一个结构体:
LENTHDR: WORD
N_DR: WORD
END_STRUCT
本例中读取SSL 部件列表并保存在数据块 DB2 "SZL_VALUE" 的起始地址 0 中。 S7-300 CPU 的 IP 地址由 4 个字节构成,以16进制字节形式存储在 DB2 "SZL_VALUE" 的起始地址 2 中。
图. 02
图. 03
图. 04
图. 05
图. 06
图. 07
该下载包含项目 "Read_IP_Address.zip".
拷贝 "Read_IP_Address.zip" 文件到一个单独的文件夹然后双击,之后使用 STEP 7 打开。
如何编程通信块 FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和 FB66 "TDISCON" 以实现用 S7-300 或 S7-400 CPU 的 PROFINET 口进行基于 TCP 协议的数据交换?
集成 PROFINET 口的 CPU 和 WinAC RTX ,支持开放式 IE 通信。
从标准库中拷贝最新版本的上述通讯块到用户程序中,然后再编写程序中调用它们。
建立 TCP 连接的连接参数保存在一个数据结构中。
本例中,用到 UDT65 "TCON_PAR" 这个数据结构,保存在DB1中并由用户参数化。 注意
表 01 "OUCW_2" 数据结构保存的连接参数
表 01
字节
参数
数据类型
描述
0 to 1
block_length
WORD
"OUCW_2" 数据结构长度
2 to 3
id
BYTE
连接标识
值范围: w#16#0001 至 w#16#0FFF
必须在相关块ID中指定该参数。
4
connection_type
BYTE
TCP 协议版本: B#16#11
5
active_est
BOOLEAN
建立连接标识
6
local_device_id
BYTE
通过CPU 315-2 PN/DP集成PN接口通信:B#16#02
7
local_tsap_id_len
BYTE
local_tsap_id 长度
connection_type = B#16#11时可行值:0或2
(主动端:0或2,被动端:2)
8
rem_subnet_id_len
BYTE
当前不可用,参数值B#16#00
9
rem_staddr_len
BYTE
远程连接端点地址长度
10
rem_tsap_id_len
BYTE
rem_tsap_id beter参数
connection_type = B#16#11时的可行值:0或2
11
next_staddr
BYTE
next_staddr 长度
12 to 27
local_tsap_id
ARRAY [1..16] of BYTE
本地端口号:2000,例如
local_tsap_id[1] = B#16#7 (十六进制端口号高字节)
local_tsap_id[2] = B#16#D0 (十六进制端口号低字节)
local_tsap_id[3-16] = B#16#00
28 to 33
rem_subnet_id
ARRAY [1..6] of BYTE
当前不可用,参数值B#16#00
34 to 39
rem_staddr
ARRAY [1..6] of BYTE
远程连接端点IP地址: 192.168.0.30
rem_staddr[1] = B#16#C0
rem_staddr[2] = B#16#A8
rem_staddr[3] = B#16#00
rem_staddr[4] = B#16#1E
rem_staddr[5-6] = B#00(保留)
40 to 55
rem_tsap id
ARRAY [1..16] of BYTE
远程连接端点端口号: 2000,例如
local_tsap_id[1] = B#16#7 (十六进制端口号高字节)
local_tsap_id[2] = B#16#D0 (十六进制端口号低字节)
local_tsap_id[3-16] = B#16#00
56 to 61
next_staddr
ARRAY [1..6] of BYTE
next_staddr[1-6] = B#16#00
62-63
spare
WORD
保留,值W#16#0000.
S7 程序中包含了对 FB65 "TCON" 的调用和带有建立 TCP 连接的连接参数数据结构"OUCW_2" 创建的DB1 。也包含了来自于 Standard Library -> Communication Blocks 下的 FB63 "TSEND" 和 FB64 "TRCV" 的调用。 FB63 "TSEND" 用于发送数据到 S7 站或 S5 站,以及到 PC 站或到第三方系统. FB64 "TRCV" 用于接收来自其他 S7 站,S5 站,PC 站和第三方系统的数据。
OB100 是重启 OB 块,当 CPU 重新启动时 (暖启动) 执行一次.在 OB100 中,第一次通信由 M0.3 触发。
OB1 循环调用。 FB1 在 OB1 中被调用 (背景数据块: DB11) , M0.3作为 INIT_COM 参数,M10.0作为ABORT参数。在 OB1 中调用 FB1结束后, 复位M0.3。
图. 01
在 OB1 中调用 FB1。该 FB1 中调用以下功能块:
定义连接ID
你可以随意修改连接ID。修改FB1 network2中的连接ID和你的组态保持一致。连接ID保存在DB11的静态变量中。
本例中定义连接ID为 "2"。
图. 02 连接建立
通过 FB65"TCON" 的输入参数 "REQ" 的上升沿触发来建立连接。数据块DB11 的背景数据块中集成了带有连接参数的数据结构 "OUCW_2"。
FB65 "TCON" 的输入参数 "CONNECT" 需要指定一个含有连接参数的存储区。
在系统启动时连接建立并保持,直到调用 FB66 "TDISCON" 来断开连接,或让CPU 进入停止模式或关闭电源来断开连接。
图. 03
可以为输入参数 "DATA" 指定包含要发送数据的存储区。
并在输入参数 "LEN" 填写要发送的字节数。
本例中发送数据保存在DB100中,向通信伙伴发送100个字节。
输出参数 "DONE", "ERROR" 和 "STATUS" 用于任务评价。
图. 04
如果发送任务执行出错,那么 "SEND_BUSY" 变量同样被复位,FB63 的输出参数 "STATUS" 的值被保存用于错误分析。
图. 05
图. 06
用输入参数 "DATA" 指定保存接收数据的存储的地址和长度。
本例中接受100个字节并保存在DB200中。
图. 07
图. 08
图. 09
图. 10
S7-300 PLC通过MD720-3发送短消息
SMS(Short Messaging Service)是最早的短消息业务,也是现在普及率最高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的。SMS以简单方便的使用功能受到大众的欢迎,却始终是属于第一代的无线数据服务,在内容和应用方面存在技术标准的限制。
一个SMS消息最长可包括 160个字符(偶数二进制)。
SMS是一种存储和转发服务。也就是说,短消息并不是直接从发送人发送到接收人,而始终通过SMS中心进行转发的。如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。
SMS具有消息发送确认的功能。这意味着
SMS与寻呼不同,用户不是简单地发出短消息然后相信消息已发送成功;而是短消息发送人可以收到返回消息,通知他们短消息是否已经发送成功。
SMS 消息的发送和接收可以和 GSM 语音同步进行。
SMS 消息按消息收费,因此要比通过基于 IP 的网络(例如,使用 GPRS [通用分组无线业务])发送的数据昂贵得多(每字节)。
要使用 SMS,用户需要预订支持 SMS 的移动网络,并且必须为该用户启用 SMS 的使用。用户需要有发送短消息或接收短消息的目的地。该目的地通常是其他的移动电话,但也可以是服务器。最后,用户还需要有支持 SMS 的移动电话,并需要了解如何使用其特定型号的移动电话发送或阅读短消息。
SMS发送的模式分有两种:Text模式和PDU模式.
使用Text模式收发短信代码简单,实现起来十分容易,但是最大的缺点是不能收发中文短信, PDU模式完全可以解决这个问题,PDU模式不仅支持中文短信,也能发送英文短信, PDU模式收发短信可以使用三种编码: 7-bit、8-bit和UCS2编码。 7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。我们要实现中文短信的发送,所以选择UCS2,即中文Unicode码。下面是关于两种方式发送的示例AT指令:
范例:向手机号码13801234567发送短信“Weather”
(1) TEXT方式
AT+CMGF=1<CR> …………设置短信发送方式为TEXT模式
AT+CMGS=”13801234567”<CR> …………向被叫号码发短信
> Weather <CTRL+Z>
(2) PDU方式
AT+CMGF=0<CR> ……………设置短信发送方式为PDU模式
AT+CMGS=018<CR> ……………向被叫号码发送PDU的长度
>0001000D91683108214365F700080459296C14<CTRL+Z>
AT+CMGS=XXX<CR> …XXX表示PDU中TPDU的长度
>PDU ...输入PDU信息
0001 :基本参数
00 :消息基准值TP-MR
0D :目标地址数字个数(十进制,不包含91)
91 :目标地址格式
68 :目标地址为中国
3108214365F7 :目标地址(13801234567)
00 :协议标示TP-PID
08 :用户信息编码格式TP-DCS(08表示UCS2编码)
00 :有效期TP-VP
04 :用户信息长度TP-UDL
59296C14 :用户信息(“天气”)
PDU格式发送短消息时,还必须计算整个PDU数据包的长度,PDU数据包的长度等于(PDU数据包字符数-2)/2,在上面的例子里:(38-2)/2=18。
硬件的连接, S7-300CP后接CP340(RS232串口)或CP341(RS232串口),再通过串口直连线连接CP340或CP341到MD720-3的串口上,MD720-3插一块SIM卡。直连线的1针到9针对应连接。
图1、网络结构图
3、需要的软件及硬件
Component
Qty.
MLFB / Order number
Note
PS307 5A
1
6ES7307-1EA00-0AA0
CPU317-2PN/DP
1
6ES7317-2EJ10-0AB0
CP341
1
6ES7341-1AH01-0AE0
MD720-3
1
6NH9720-3AA00
直连线
1
6ES7901-3CB30-0XA0
SIM card
软件
Component
No.
MLFB / Order number
Note
STEP 7 5.4 SP4
1
6ES7810-4CC08-0YA5
在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载链接地址如下:26100569
图2、存放目录
Sms_bloc: 包括了使用CP340、CP341、CP442-1收发短信的库功能。
Sms_MD720_Application:包含了用CP341和CP442-1收发短信的应用程序。
Sms_MD720_Simple:包含了一个用Cp341收发短信的简单应用程序
由于三个文件夹的程序只有Sms_MD720_Simple的程序是完整的,另外两个文件夹下的程序由于编者的疏忽,程序不完整,导致无法正常编译通过。所以在本文里我们只能介绍,通过拷贝Sms_MD720_Simple项目下的功能块到实际的项目中来实现发送短信的功能。
在新建项目前,需要硬件按照网络图安装好,并加电。MD720加电后恢复出厂设置,让其工作在终端模式下(在MD720的系统手册上介绍如何恢复出厂设置,这里不再作详细介绍),恢复后用串口直连线,连接MD720与计算机的串口,打开计算机的超级终端程序,打开方式如下图:
图3、打开超级终端
图4、输入连接名
图5、选择COM端口
图6、COM口的参数设置
图7、测试与Modem的连接
图8、设置Modem的波特率
图9、S7-300站的硬件组态
图10、CP341的硬件地址设置
图11、选择通讯协议为ASCII
图12、设置ASCII的通讯参数
图13、设置传输的控制方式
图14、设置接收的缓存区
拷贝后如下图:
图15、拷贝库程序到项目下
图16、OB1中调用短消息功能块
图17、在发送功能块的背景数据块中设置修改CP341的硬件地址
图18、在发送功能块的背景数据块中设置PIN码、目的手机号及信息
图19、通过变量监控表触发信息发送
上面的调试步骤只是从功能上实现了发短信的功能,要实现收发多条信息到多个多个手机,可以参考Sms_MD720_Application和Sms_MD720_Simple下的编程思路开发适合自己应用的程序。
5、以PDU的方式发送中文SMS
要发送中文短信,需要安装Step7 SCL编程语言包,发送短信库功能块是由FB100来完成的,FB100是由SCL语言编写,要想使其能发送中文的短信,那么就需要用SCL语言修改FB100功能块。修改方式如下:
在发送文本方式步骤的基础上,用SCL语言打开SMS_CP341项目下目录Source下的SMS_Send源代码,如下图:
图20、打开发送功能块的源文件
图21、SCL编辑器打开后的源文件
图22、修改短信的发送模式为PDU模式
图23、修改程序中的发送模式
图24、重新编译修改后的程序
图25、修改为PDU模式下的信息格式