- {{item.name}}
在消息功能块中如何将字符串作为报警消息关联值上传?
- 0
- 309
- 1423
您可以在消息文本中使用相关的值来为消息提供来自过程的当前值。对于String数据类型,您必须注意额外的特殊特性。
带有高级过程库的步骤
不带有高级过程库的步骤
一个示例应用程序可以与字符串格式的消息条形码、材料或批名称(SIMATIC batch)一起传输。
Step7/PCS 7的默认消息块(ALARM_S, ALARM_8P,…)不支持在消息关联值的输入-输出参数处的“STRING”数据类型的互连。
带有高级过程库的步骤
使用高级进程库(APL)的“StrgToBy”块。此块将最大长度为32的字符串转换为字节结构。
1.将块插入CFC图中。
2.将所需字符串与块连接。
3.将块与工艺块的相关值连接起来。
4.相应地更改消息文本。
结果
显示出关联的值。
不带有高级过程库的步骤
这个例子中,功能块使用SCL语句创建
注意第一次调用ALARM_8P时,确定附加值在通信缓存中的内存需求。当发送长度可变的附加值(例如STRING)时,谨记这一点。第一次调用之后,无法发送变量长度更大的附加值。
方法 1这里叙述了使用准确的类型转换方式将ANY指针转换为"ARRAY of CHAR"。和传统的 "BLKMOV"方式(方法 2)相比,这种方式的处理速度更快,并且灵活的适合于各种ANY指针输入。这就意味着,例如REAL值也可以作为消息关联值连接到功能块上。
注意
超过32个字符的文本不能通过此方法上传。
1. 导入SCL源
将"FlexString.SCL"导入到项目中。
- 在SIMATIC管理器中,打开主数据库的S7程序的"Sources"文件夹。
- 选择菜单"Import > External Source...",再选择之前解压的"FlexString.SCL"源文件。
- 为SCL程序分配一个空闲的FB号,或者使用符号表中的某个条目。
- 保存编译源文件。
2.SCL程序的描述
SCL程序可以实现以下功能。
- 声明ALARM_8P需要上传的ANY类型的输入。此例中有输入"SD_Flex_01"和 "SD_Flex_02"。为了更多的SD参数可以定义更多输入。
- 执行ANY指针时的结构声明
- 如果指针数据类型是"STRING"类型,就转为"CHAR"。
- 已经确认了DB号和当前字节地址。
- 读取字符串的当前长度(字符头的第2个字节)并作为一个循环因子分配到ANY指针。
- 为了缩短字符头,在当前ANY指针长度上增加2个字节。增加时需要考虑最低的三位数值是表明地址的。
- ANY指针作为"Alarm_8P"块的消息关联值上传。
3. 消息参数化
- 1、打开块菜单的"Special Object Properties > Messages..."。
- 2、在"Message text"中输入所需消息文本。在消息文本中输入格式"@1%s@",以使得消息中可以显示关联值。
注意
"@1%s@"声明可以显示字符串类型(s = STRING)的相应关联值 (1 = SD_1) 。所有关联值 (SD1 到 SD10)都会随着功能块的每条消息(SIG_1 to SIG_8)上传。
方法 2
这个方法描述了如何将一个字符串通过 "BLKMOV"块写到"ARRAY of CHAR"中,上传到消息块中。和方法1相比,操作更简单,并且适合于超过32个字符的字符串。
1. 导入SCL源
按照方法1中所述将源文件"FlexString.SCL"导入到项目中。
2. SCL程序描述
这个SCL程序实现了如下功能。
- 最多16个字符的STRING类型参数声明
- 16个字节的内部字节串声明
图. 4
- 给每个元素写“0”以复位字节串。
- 文本通过"BLKMOV"块赋到字节串上。
- 字节串作为"Alarm_8P"功能块的消息关联值的参数上传。
图. 5
3. 参数化消息
消息按照方法1中所述进行参数化。
创建环境
这篇FAQ中画面和下载对象都创建于PCS 7 V7.1 SP1中。
关键词
ANY 指针
https://support.industry.siemens.com/cs/cn/zh/view/674578
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 如果SIWAREX FTA称重模块的报警消息无法在触摸屏上显示怎么办?
- 在 SIMATIC WinCC (TIA Portal)中如何将消息复制到另外一个项目?
- PCS7 V7.0中如何组态自定义消息的智能报警隐藏功能
- PCS7中如何定制自定义消息的报警回路功能
- 在过程控制消息中如何显示资产注释?
- CP342-5作为DP主站能从DP从站读出哪些诊断消息?
- PCS 7 中“用户组态消息类型”提供了哪些新功能?如何进行组态?
- 在 TIA 博途中,必须进行哪些设置才能通过 CPU 的 web 服务器功能读取消息和状态信息并且将其显示在 web 浏览器上?
- SIMOTION的信息处理功能AlarmS 和用户自定义诊断缓冲区消息
- S7-1500 CPU 在报警和消息数据过大时,为什么无法将项目数据下载进装载存储器中?
{{item.nickName}}