Siebel 8.1 SBA与SIA中存储Address信息的不同点
西门子间接寻址2

AR:
1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX
比较一下两种格式的不同,我们发现,这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。聪明的你,肯定可以联想到,这是用于指定存储区域的。对,bit24-26的取值确定了要寻址的区域,它的取值是这样定义的:
西门子间接寻址<2>
详解西门子间接寻址<2>
【地址寄存器间接寻址】
在先前所说的存储器间接寻址中,间接指针用M、DB、DI和L直接指定,就是说,指针指向的存储区内容就是指令要执行的确切地址数值单元。但在寄存器间接寻址中,指令要执行的确切地址数值单元,并非寄存器指向的存储区内容,也就是说,寄存器本身也是间接的指向真正的地址数值单元。从寄存器到得出真正的地址数值单元,西门子提供了两种途径:
区域标识符
26、25、24位
P(外部输入输出)
000
I(输入映像区)
001
Q(输出映像区)
010
M(位存储区)
011
DB(数据块)
100
DI(背景数据块)
101
L(暂存数据区,也叫局域数据)
X [AR1,P#1.5] 这个例子,要寻址的地址区域和确切的地址数值单元,都未事先确定,只是确定了存储大小,这就是意味着我们可以在不同的区域间的不同地址数值单元以给定的区域大小进行寻址,所以称之为:区域间寄存器间接寻址方式,相应的,这里的[AR1,P#1.5] 就叫做区域间寻址指针。
斯巴拓ASCII通讯协议

1、 协议:
数据格式:7 位数据位,偶校验,1 位停止位
7 位数据位,奇校验,1 位停止位
7 位数据位,无校验,2 位停止位
8 位数据位,偶校验,1 位停止位
8 位数据位,奇校验,1 位停止位
8 位数据位,无校验,1 位停止位(默认)
8 位数据位,无校验,2 位停止位
传输速率:4800、9600(默认)、19200、38400、57600、115200、230400bps
10:0.2 11:0.5 12:1 13:2
14:5
15:10 16:20 17:50
(与 1.X 版协议不兼容)
Channel:传感器通道号;从 0 开始编号;为 255 时选择所有通道
设置标定时增益和零点分别对应的砝码重量
Span:增益对应的砝码重量;范围均为:-8000000~8000000
Bit15---Bit12:全为 0 Bit11:0 峰值未检测/1 检测
Bit10:0 谷值未检测/1 检测 Bit9:0 正常/超载(V1.3)
Bit8:0 常规/1 智能传感器 Bit7:0 非零/1 零点
Bit6:0 正常/1 溢出
Bit5:0 稳定/1 不稳
Bit4:0 开机未清零/1 开机已清零
Channel:传感器通道号;从 0 开始编号;为 255 时选择所有通道 Sensitivity:传感器灵敏度大小,范围:0.1mv/V~7.8mv/V,设 置时无需输入小数点,比如灵敏度为 2.0000mv/V,则写入 20000 (小数点后保留 4 位) Range:传感器量程大小,如传感器量程为 100kg,要精确到 1g, 则输入 100000;(与 1.X 版协议不兼容)
ASCII码介绍

ASCII码介绍目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。
适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。
所以,7 位ASCII码是用七位二进制数进行编码的,可以表示128个字符。
第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。
所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。
奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)[编辑]ASCII码表代码解释:Dec:10进制 Hx:16进制 Oct:8进制 Char:字符16进制表示法:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12...1F、20...[编辑]扩充字符集(Extended Character Set)。
[教程]-ASCII,Unicode和UTF-8之间的区别和联系
![[教程]-ASCII,Unicode和UTF-8之间的区别和联系](https://img.taocdn.com/s3/m/ad52273643323968011c92a9.png)
ASCII,Unicode和UTF-8之间的区别和联系1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。
每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。
也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。
上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。
这被称为ASCII码,一直沿用至今。
ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。
这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
2、非ASCII编码英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。
比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。
于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。
比如,法语中的é的编码为130(二进制10000010)。
这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。
但是,这里又出现了新的问题。
不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。
比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג),在俄语编码中又会代表另一个符号。
但是不管怎样,所有这些编码方式中,0—127表示的符号是一样的,不一样的只是128—255的这一段。
至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。
一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。
比如,简体中文常见的编码方式是GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示256x256=65536个符号。
data,bdata,idata,pdata,xdata,code存储类型与存储区

data,bdata,idata,pdata,xdata,code存储类型与存储区data,bdata,idata,pdata,xdata,code存储类型与存储区2009-04-13 16:15未验证bit是在内部数据存储空间中 20H .. 2FH 区域中⼀个位的地址,或者 8051 位可寻址 SFR 的⼀个位地址。
code是在 0000H .. 0FFFFH 之间的⼀个代码地址。
data是在 0 到 127 之间的⼀个数据存储器地址,或者在 128 .. 255 范围内的⼀个特殊功能寄存器(SFR)地址。
idata是 0 to 255 范围内的⼀个 idata 存储器地址。
xdata 是 0 to 65535 范围内的⼀个 xdata 存储器地址。
指针类型和存储区的关系详解⼀、存储类型与存储区关系data ---> 可寻址⽚内rambdata ---> 可位寻址的⽚内ramidata ---> 可寻址⽚内ram,允许访问全部内部rampdata ---> 分页寻址⽚外ram (MOVX @R0) (256 BYTE/页)xdata ---> 可寻址⽚外ram (64k 地址范围)code ---> 程序存储区 (64k 地址范围),对应MOVC @DPTR⼆、指针类型和存储区的关系对变量进⾏声明时可以指定变量的存储类型如:uchar data x和data uchar x相等价都是在内ram区分配⼀个字节的变量。
同样对于指针变量的声明,因涉及到指针变量本⾝的存储位置和指针所指向的存储区位置不同⽽进⾏相应的存储区类型关键字的使⽤如:uchar xdata * data pstr是指在内ram区分配⼀个指针变量("*"号后的data关键字的作⽤),⽽且这个指针本⾝指向xdata区("*"前xdata关键字的作⽤),可能初学C51时有点不好懂也不好记。
Siebel实施规范-编码规范

Siebel实施规X ——编码规X编写人: X远舟日期:2021-7-5目录一、简介01. 目的02. 适用X围0二、编程规X01. 总体规X02. 代码格式规X03.代码注释规X14. 命名规X25. 逻辑稳定规X45. 性能效率规X4三、代码Review规X41. 代码Review的目的42. 代码Review方法53. 代码Review规X5一、简介1.目的本文的目的在于为汉得Siebel技术团队的编码规X提出意见和参考。
2. 适用X围本规X〔草稿〕应用于Siebel实施工程中使用E-Script进展的编码的脚本开发。
二、编程规X1. 总体规X【规X1】优先考虑编码的可替代方案(User Property, Model State, Validation等)【规X2】时刻考虑到你的每一个编码都会由其他的人在其他的时间使用、维护、增强【规X3】以不懂程序的人都能读懂你的代码为编码的最根本目标和要求【规X4】尽量使你的程序容易被调用〔重用〕,修改和扩展【规X5】合理地捕获和处理异常【规X5】新创立的对象需要在代码完毕时显式释放【规X6】效率是永远需要重点考虑、分析和优化的问题点【规X7】把相关的逻辑封装在BS中,防止代码分散冗余,增加维护本钱2. 代码格式规X【规X1】单行代码不得太长,需便于阅读,太长的代码行需要在适合的位置断行【规X2】每行代码最多包含一个独立的语句。
【规X3】代码块之间使用Tab缩进一次【规X4】一个方法的代码语句不宜过多,复杂的逻辑使用拆分成几个独立的Function 来实现,并确保一个Function只做一件独立的事情。
【规X5】每一个变量的声明独占一行,变量的声明置于代码块开场位置。
【规X6】在逻辑块、代码块之间合理使用单个空行3.代码注释规X【规X1】适当地编写代码注释,增强代码的可读性和可维护性说明:一般情况下,程序或Function的作用,参数,创立和修改信息等都需要通过注释来标识,便以使用、维护和管理。
各个字符集关系 -回复

各个字符集关系-回复字符集是计算机中用于表示和存储字符的编码系统。
不同的字符集使用不同的编码方式,这导致不同字符集之间存在着关系。
在本文中,我们将探讨各个字符集之间的关系,并解释它们之间的区别和联系。
1. ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码):ASCII码最早是由美国国家标准学会(American National Standards Institute)于1963年提出的编码系统,它使用7位二进制数表示128个常用字符,包括英文字母、数字、标点符号和一些控制字符。
由于只使用7位二进制数,ASCII字符集只能表示较少的字符,对于其他语言字符(如汉字、日文、韩文等)来说是不够的。
2. 扩展ASCII码:为了解决ASCII码无法表示其他语言字符的问题,IBM公司推出了一套扩展ASCII码,将原有7位ASCII码的最高位添加为1,扩展为8位ASCII 码。
这样,扩展ASCII码可以表示更多的字符,包括一些特殊符号、货币符号以及一部分其他语言的字符。
然而,由于这套码表是IBM推出的,所以不同的计算机厂商可能会有不同的扩展ASCII码表。
3. Unicode:Unicode是一套统一的字符集,旨在表示全球所有语言的字符。
Unicode采用16位或32位的编码方式,可以表示超过十万个字符。
Unicode字符集中包括了ASCII码中的字符,并且还包括了其他语言的字符,如汉字、日文、韩文等。
Unicode字符集实现了跨语言的统一编码,并被广泛应用于各种操作系统、应用程序和互联网中。
4. UTF-8(Unicode Transformation Format-8 bits):UTF-8是Unicode的一种可变长度编码方式,在UTF-8中,每个字符的编码长度可以是1到4个字节。
基本ASCII字符使用一个字节编码,而其他字符则需要更多的字节。
西门子间接寻址1234

详解西门子间接寻址详解西门子间接寻址【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。
其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。
我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(B YTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。
当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。
由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0其中的A是指令符,Q2.0是A的操作数,也就是地址。
这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。
由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。
DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。
这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。
给定指令操作的地址方法,就是寻址方法。
在谈间接寻址之前,我们简单的了解一下直接寻址。
所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。
这样看来,间接寻址就是间接的给出指令的确切操作数。
对,就是这个概念。
比如:A Q[MD100] ,A T[DBW100]。
程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Siebel 8.1 SBA与SIA中存储Address信息的不同点
一、 Siebel8.1 SBA中Account的Address分析
1、以前在Siebel 8.1 SBA中,Account的Address是存储在S_ADDR_ORG
中,一个Account可以有多个address,是1:M的关系。
S_ORG_EXT中
有一个字段,PR_ADDR_ID,存储primary的address id。
Account中的
Address为MVG字段,对应的Multivalue Link为Business Address。
其对应的Link为Account/Business Address。
2、进入BC:Business Address,可以看到对应的Base table为S_ADDR_ORG。
这个table对应的user key为ADDR_NAME和OU_ID。
其中ADDR_NAME由
ADDR,CITY,STATE组成。
OU_ID为对应的Account的ROW_ID。
3、这样如果OU_ID不同,但是ADDR_NAME相同的话,也没有问题,所以不
同的客户可以创建相同的地址,保存在S_ADDR_ORG表中。
所以
S_ADDR_ORG这个表会很大。
二、 Siebel8.1 SIA中Account的Address分析
1、但是在Siebel8.1 SIA中,这一点有了变化,S_ADDR_ORG不用了,改为
S_ADDR_PER取而代之。
而且Account与Address的关系不再是1:M,而
是M:M的关系,Inter table是S_CON_ADDR。
Multivalue Link还是
Business Address。
但是对应的Link为Account/CUT Address,Destination BC改为CUT Address。
Base table为S_ADDR_PER。
2、S_ADDR_PER的user key变成了ADDR_NAME和PER_ID,而且PER_ID不是
required字段,可以为NULL。
3、进入Link:Account/CUT Address,可以看到这是一个M:M的inter table:
S_CON_ADDR,Inter Parent Column为ACCNT_ID,Inter Child Column
为ADDR_PER_ID。
同时,Contact中也可以连接多个address,也使用的
是S_CON_ADDR。
4、进入SQL中查询,可以看到,一个Account可以有多个Address
(ADDR_PER_ID),一个Contact,可以有多个Address。
三、 Siebel8.1 SBA中Contact的Address分析
1、在Contact的Addresses中,可以填入contact的address。
BC是
Personal Address,Applet是Personal Address List Applet。
2、BC:Personal Address,base table为S_ADDR_PER。
3、在Contact中新建一个联系人,ROW_ID为1-PY3W,在该联系人下面建两
个address,查询S_ADDR_PER,可以看到下面信息。
说明也是1:M的关系。
四、 Siebel8.1 SIA中Contact的Address分析
1、在siebel8.1 SIA中,contact可以填写多个address信息,而且是M:
M的关系。
BC:Contact,对应的Field为Personal Street Address。
Multivalue Link为Personal Address,Destination Field为Street Address。
对应的Link为Contact/CUT Address。
2、进入Link:Contact/CUT Address,可以看到这是一个M:M的inter table:
S_CON_ADDR,Inter Parent Column为CONTACT_ID,Inter Child Column
为ADDR_PER_ID。
与Account中使用多个address用的是同一个inter table。
3、在Contact下面建Address,为M:M关系。
数据存储在Inter table:
S_CON_ADDR,地址信息存储在S_ADDR_PER,Contact信息存储在
S_CONTACT。
在Contact中新建联系人,再建address信息。
查询contact,ROW_ID为1-3N45。
查询Address信息,对应的有4条地址。
查询S_CON_ADDR,可以看到同一个CONTACT_ID,对应的有4条ADDR_PER_ID。
4、另外,一个Contact可以有多个account,这个应该与SBA一样,Inter
table为S_PARTY_PER。
五、 Siebel中MVG整体描述
1、在siebel8.1中,MVG有1:M和M:M两种,如下为一个总体的架构图。
在Applet中可以放一个MVG的字段,关联一个MVG Applet(如果是M:M,需要一个Associate Applet),它的BC与Master BC通过Multi Value Link关联。
在Master BC中有一个Primary Id Field,为MVG中Primary record,同时这个字段也是Base Table中的Foreign Key。
2、Multi Value Link中的字段说明:
六、 Siebel8.1 SIA中关于Account的说明
1、在Applet部分
Applet
Name: SIS Account Entry Applet
MVG Applet: Account Address Mvg Applet
Field: Street Address
Caption: Address
2、在BC:Account部分
BC
Name: Account
->Field
1. Name: Primary Address Id
Join: S_ORG_EXT
Column: PR_ADDR_ID
2. Name: Street Address
Multivalue Link: Business Address
Dest Field: Street Address
->Multi Value Link
Name: Business Address
Destination Business Component: CUT Address
Desination Link: Account/CUT Address
Primary ID Field: Pimary Address Id
3、在Link部分
Link
Name: Account/CUT Address
Parent Business Component: Account
Child Buiness Component: CUT Address
Inter Table: S_CON_ADDR
Inter Parent Column: ACCNT_ID
Inter Child Column: ADDR_PER_ID
Primary ID Field: Primary Address Id 4、BC:CUT Address的base table为S_ADDR_PER。