BCD码与十六进制
BCD码与十六进制是数字编码中的两种常见形式,它们在数字表示和转换方面有着特定的应用。BCD码(Binary-Coded Decimal)是一种二进制编码形式,每个十进制数用4位二进制数表示。BCD码的数值范围是0到9,而不包括十六进制的A到F。相邻的BCD位相加时,逢十进一。高位二进制数表示符号,1代表负数,0代表正数。举例来说,16位BCD码的范围是从-999到+999。
在数字转换方面,拨码开关可以将数字转换为4位二进制数。例如,PLC系统通过12个数字量输入点读取3位BCD码,转换为十六进制数16#829。
虽然BCD码和十六进制在表示方式上有所区别,但它们经常被混淆,因为BCD码常以十六进制形式表示。
对于程序中的数字,如何确定它们是BCD码还是十六进制数呢?
首先,要观察数据的来源和用途。BCD码通常用于输入和输出数据,比如来自拨码开关的数据或者送给显示电梯楼层的译码器芯片的数据。其次,可以查阅手册来确认数据类型。例如,日期和时间值通常是BCD码,在手册中有明确规定。另外,对于计数器的预设值和当前计数值,通常也会使用BCD码表示。
如何监视和输入BCD码呢?
在监视BCD码时,可以使用十六进制格式,在变量表和程序状态监控中进行观察。而在输入BCD码时,需要注意高位(符号位)为16#F,而低3位各位只能是0到9,如果超出范围会导致错误。例如,对于计数器的预设值,可以使用格式为C#的常数来表示,而不是直接输入十进制数。
此外,使用MOVE指令传送数据时,应确保数据格式正确,否则可能导致错误。因此,在输入BCD码时,需要注意格式和范围,以确保系统正常运行。
FC和FB的需要注意的区别
FC和FB具有输入(IN)、输出(OUT)和输入/输出(IN_OUT)三种参数类型。IN参数用于数据输入,OUT参数用于输出结果,而IN_OUT参数既可以作为数据输入,也可以作为数据输出。
在FC和FB中都可以使用临时(TEMP)变量。这些临时变量存储在系统的本地数据堆(LocalDataStack)中,在FC或FB调用结束后会被释放,因此临时变量仅在调用期间有效。
不同的是,FB还具有静态(STAT)变量类型,而FC没有。静态变量存储在FB的背景DB中,在FB调用结束后仍然有效。
另外,FC具有返回值变量(RET_VAL),用于返回调用结果。而使用OUT或者IN_OUT类型的参数可以输出多个变量,因此比RET_VAL更灵活。
背景DB和共享DB是两种不同类型的数据库。
如之前所述,背景DB与FB相关联,因此在创建背景DB时,必须指定其所属的FB,并且该FB必须已存在。在调用FB时,也必须指定对应的背景DB。
需要注意的是,背景DB与共享DB在本质上没有区别,它们的数据可以被任何一个OBBC成FB读写。它们之间的主要区别在于使用目的:背景DB的目的是为某个FB提供数据,因此其数据格式必须与该FB的变量声明一致;而共享DB的主要目的是为用户程序提供一个可保存的数据区,其数据结构不依赖于特定的程序块。
寻址介绍表
- 水塔水位的控制,分享一则西门子PLC应用实例 2024-11-22
- PLC大牛们,你真的懂OPC吗?西门子代理商 2024-11-22
- PLC串口通讯和通讯接口知识 2024-11-22
- PLC中开关量、模拟量、脉冲量的编程算法 2024-11-22
- S7-1200CPU做IO共享设备的配置方法 2024-11-22
- 浅谈西门子PLC控制程序的保护(实用!) 2024-11-22
- 西门子触摸屏与西门子PLC如何实现在线仿真 2024-11-22
- S7-200 SMART自由口通信 2024-11-22
- 西门子S7-300PLC所有模拟量模块接线问题汇总 2024-11-22
- PLC与西门子触摸屏的RS-485通信,一步步详解 2024-11-22