Custom definiert指令是为了方便用户在使用过程中在某些项目里面需要使用zu其他Vereinbarung,而不仅局限于 GVS 标准Vereinbarung, 扩大了使用Vereinbarung的范围,如:可在项目中使用 modbus Vereinbarung, Custom Vereinbarung主要包括两个大模块,一个是自定 义VereinbarungSenden Sie模块,另一个是Custom definiert指令EmpfangAnalyse模块。
2.如何Senden SieCustom Vereinbarung
新建或Öffnen.已有的工程文件,选中Kontrollen,现以KnopfKontrollen为例,添加Ereignisse,设置处理方法为“BefehlSenden Sie→【自 定义Vereinbarung】Senden SieDie SerieBefehl” ,可添加KontrollenCustom VereinbarungSenden Sie,如图 2.1 所示。

图2.1 添加Custom VereinbarungSenden Sie
3.如何Senden SieCustom VereinbarungMeldung
1、 Custom definiert指令函数说明
KlickenBefehl下的输入框,弹出Custom definiert指令函数说明窗口,在输入框中可输入 16 进制数字,也可进行算法运算以 及 CRC 算法,根据Custom definiert指令函数说明窗口设置Custom VereinbarungSenden Sie,如图 3.1 所示。

图3.1 Custom definiert指令函数说明
BYTE
该关键字为单Bytes,比如$BYTE(#3000),意思就是将索引为 3000 的变Quantität的值在该位置上取最低Bytes,比如索引 3000 变Quantität的值为 0x1024,例如需要Senden SieCustom Vereinbarung 55 AA $BYTE(#3000) 10 ff ,那么Senden Sie的Custom Vereinbarung指令为:
55 AA 24 10 FF。
同时也可以实现运算:55 AA $BYTE(#3000+2) 10 ff ,那么Senden Sie的Custom Vereinbarung指令为:55 AA 26 10 FF。
2BYTEM
与 BYTE 用法一致,但是该关键字表示为两个Bytes,结尾的’ M’代表高位在前,例如索引3000 变Quantität的值为 0x1234, 那么,该位置就是 0x12 0x34 ,假设需要Senden SieCustom Vereinbarung 55 AA $2BYTEM(#3000) 10 ff ,那么Senden Sie的Custom Vereinbarung 指令为:55 AA 12 34 10 FF。
2BYTEL
与 2BYTEM 用法一致,结尾的’ L’代表低位在前,例如索引 3000 变Quantität的值为 0x1234,那么,该位置就是 0x34 0x12, 假设需要Senden SieCustom Vereinbarung 55 AA $2BYTEL(#3000) 10 ff ,那么Senden Sie的Custom Vereinbarung指令为:55 AA 34 12 10 FF。
4BYTEM
与 BYTE 用法一致,但是该关键字表示为四个Bytes,结尾的’M’代表高位在前,例如索引 3000 变Quantität的值为 0x12345678,那么,该位置就是 0x12 0x34 0x56 0x78 ,假设需要Senden SieCustom Vereinbarung 55 AA $4BYTEM(#3000) 10 ff, 那么Senden Sie的Custom Vereinbarung指令为:55 AA 12 34 56 78 10 FF。
4BYTEL
与 4BYTEL 用法一致,有四个Bytes且低位在前,同理也是用于运算以及取变Quantität值,例如$4BYTEL(#3000) ,假如 该变Quantität值为 1 ,那么该位置为 01
00
00
00 ,假设需要Senden SieCustom Vereinbarung 55 AA $4BYTEL(#3000) 10 ff ,那么Senden Sie的 Custom Vereinbarung指令为:55 AA 01 00 00 00 10 FF。
CRC16MODBUS
该关键字表示在该位置上使用标准 MODBUS 的Prüfungen方式,大小为两个Bytes,写法为$CRC16MODBUS(a,b) ,参 数 a 代表从哪个位置开始Prüfungen,比如从Die 1 位开始 (这里没有Die 0 位) 则Parameter a 为 1 ,Parameter b 代表所需Prüfungen Länge,如 AB CD $BYTE(#3000) $CRC16MODBUS( 1,3)Von denenParameter a 为 1 即从Die一个Bytes开始Prüfungen,Parameter b 为 3 即 PrüfungenLänge为 3.
DELAY
该关键字写在Custom definiert指令后边表示该指令需要延迟多少毫秒再发出,如$DELAY(1000)即延迟 1000ms Senden Sie,例 如需要Senden SieCustom Vereinbarung 55 AA 11 10 ff $DELAY(1000),那么延迟 1000ms Senden Sie的Custom Vereinbarung指令为:55 AA 11 10
FF。
SUM8
该关键字表示在该位置是一个 1 Byte的累加Prüfungen,写法为$SUM8(a,b),ab 用法同 CRC16MODBUS
WAIT
该关键字表示是个阻塞,搭配专属关键字 WAITBYTES 一起使用,比如$WAIT(300,9,$WAITBYTES(0x45,0xaa)),那 么他的意思是Senden Sie完该指令后,等待EmpfangzuDaten头部为 0x45,0xaa,Länge为 9 的应答后才能Senden Sie下一帧指令或 者等待 300 毫秒Empfang超时 (无应答) 再Senden Sie下一帧指令,避免Daten混乱,WAITBYTES 关键字的等待EmpfangDaten 段可变长
BITS
该关键字表示 1 个Bytes处理,固定 8 位,比如:$BITS(1,0,0,0, 1, 1,0, 1),它表示:0x8d, 同时他也可以使用变Quantität: $BITS(#3000,#3001, 1, 1,0,0,0,0), 当括Nr.内元素为非 0 时候,固定为 1 ,元素不足 8 个, 自动填充 0
2、如何设置帧头 ( Custom VereinbarungSenden Sie帧头设置)
帧头设置,帧头为 16 进制数字组成,可根据需求进行设置,如帧头输入

3、如何设置Datenplatz
Daten设置,确定好需要Senden Sie的变QuantitätDaten,再确定其Anzahl der Bytes,Von denenDaten可进行算法运算,如$BYTE((#3000+45)*2): 假如#3000 变Quantität的值为 6 ,那么,该位置的值为: (6+45) *2=102=0x66 ,则Datenplatz应显示 66
4、仿真演示
KlickenSimulation funktioniertKnopf
,弹出Simulation funktioniert窗口。
Senden Sie指令:FF AA 04 05 06 $BYTE((#3000+45)*2) $CRC16MODBUS( 1,6) $DELAY(3000)
即Klick aufKnopfKontrollen,在Empfang端 3000ms 后可Empfangzu指令“FF AA 04 05 06 66 9E B7” ,如图 3.2 所示。

图3.2 Custom VereinbarungSenden Sie
4.如何添加Custom definiertAnalyse
Klicken项目弹出项目窗口,Klick aufVereinbarung设置→VereinbarungTypus设置为“Custom Vereinbarung”→Klick aufCustom VereinbarungAnalyse设置→弹出 Analyse设置窗口→Klick auf添加弹出Custom definiertAnalyse设置窗口,根据需求和要求进行设置可添加一个Custom VereinbarungAnalyse, 如图 4.1 所示。

图4.1 添加Custom VereinbarungAnalyse
5.如何设置Custom VereinbarungAnalyse
1、如何设置帧头 ( Custom VereinbarungAnalyse帧头设置)
帧头可输入kleiner als gleich 10 BytesLänge的帧头,每个Analyse帧头必须不同,Klick auf帧头弹出Custom definiert指令函数说明窗口, 在帧头中输入指令函数,可起zu精确Ausrüstung进行Analyse的作用,如在帧头中输入$BYTE(#3000) ,则变Quantität索引为 0x3000 这个变Quantität作为Adresse变Quantität,通过变Quantität索引为 0x3000 变Quantität设置Geräte Adresse后,通过帧头 AB CD $BYTE(#3000) 可准确地让该Ausrüstung进行Analyse,如图 5.1 所示。

图5.1 帧头设置
2、如何设置帧尾
勾选Prüfungen帧尾,即添加帧尾Prüfungen,可输入kleiner als gleich 10 BytesLängeDaten,不勾选Prüfungen帧尾,即不添加。Klick aufPrüfungen 帧尾输入框,弹出Custom definiert指令函数说明窗口,在帧尾中输入指令函数$CRC16MODBUS(1,6) ,可对指令进行 MODBUS Prüfungen,帧尾 00 $CRC16MODBUS( 1,6)如图 5.2 所示。

图5.2 帧尾设置
3、如何设置帧总Länge
帧总Länge即将Empfang的帧总Länge,包括帧头、Datenplatz和帧尾,如图 5.3 所示。

图5.3 帧总Länge设置
4、如何设置关联变Quantität
关联变Quantität,用于将该Analyse方法与变Quantität关联起来,填写的Zahlenwert为变Quantität的变Quantität索引,比如 201 ,即最终Analyse出来 的值是变Quantität 201 的值,例如索引为 201 的变Quantität是Das SystemZeitJahr份,通过指令可设置Das SystemZeitJahr份。

图5.4 关联变Quantität设置
5、如何设置DatenAnfang偏移(Bytes)
DatenAnfang偏移Bytes即这一帧里面的Daten内容是从哪个Bytes开始的,如图 5.5 所示。

图5.5 设置DatenAnfang偏移Bytes
6、如何设置DatenLänge (Bytes)
DatenLängeBytes即从DatenAnfang偏移Bytes开始之后多少Bytes是Daten,如图 5.6 所示。

图5.6 设置DatenLänge(Bytes)
7、如何设置Datenplatz偏移
Datenplatz偏移:只有当AuswahlDatentyp为 1 位或者 2 位时候才出现,它的意思是选取该Bytes的Die几位 (从 0 开始 数) ,比如Datenformate选了 1 位,Datenplatz偏移为 3 ,Empfangzu的Daten为 0xaa ,Binärsystem显示为:10101010 ,那么这 时候Erlangen Sie的值为 1 。假如Datenformate选了 2 位,10101010 ,那么这时候Erlangen Sie的值为 01 (Binärsystem) ,如图 5.7
所示。

图5.7 设置Datenplatz偏移
8、如何设置Datenformate
1 位:单Bytes例如 0x41 ,那么其Binärsystem显示为 01000001 ,每一个都是一个位,例如 (右数) Die一位为:1,
Die二位为:0 ,依次类推
2 位:和 1 位一样,是以Binärsystem进行运算,但是取其两个位,比如 01 或 00。
1 Byte:Datenformate是单Bytes,如 a1。
2 Bytes (高位在前) :Daten假如是 1 ,那么Empfangzu的Daten必须为 00 01
2 Bytes (低位在前) :Daten假如是 1 ,那么Empfangzu的Daten必须为 01 00
4 Byte (高位在前) :Daten假如是 1 ,那么Empfangzu的Daten必须为 00 00 00 01
4 Byte (低位在前) :Daten假如是 1 ,那么Empfangzu的Daten必须为 01 00 00 00
如图 5.8 所示。

图5.8 Datenformate设置
9、如何设置Datentyp
Schalter!Quantität:这里必须与Daten比较这一栏一起看:

当Erlangen Sie的Daten内容与Daten比较填入的值完全相同时候,Daten值为 1,反之则为 0.假如Daten比较写入:26 14, Empfangzu的Daten为 26 14 ,那么该DatenRichtig.,Schalter!Quantität变为开,也就是 1 ,反之,Schalter!Quantität为关,也就是 0 ,从而达 zuSchalter!目的。1 位的Daten比较是与 0, 1 进行比较,2 位取出来Daten为 0, 1,2,3 ,故比较Daten为 0-3。
连续Quantität:

在连续Quantität里,对应可以填入公式,假如不填,那么DatenEmpfang后就是原Daten,假如加入公式,如上图所示:@ 代表Empfangzu的Daten,#3000 代表变Quantität 3000 ,Alles变Quantität均要加上#Nr.。
10、如何设置Ereignisse编Nr.
设置Ereignisse处理,即Empfangzu指令Analyse后,同时执行Ereignisse处理方法,填写Ereignisse处理编Nr.,如图 5.9 所示。

图5.9 设置Ereignisse编Nr.
6.如何设置Ereignisse处理
设置Ereignisse处理,即Empfangzu指令Analyse后,同时执行Ereignisse处理方法。
1、如何添加Ereignisse处理
Klicken菜单栏中的Ereignisse,AuswahlEreignisse处理→弹出Ereignisse处理窗口→Klick auf添加→设置Ereignisse编Nr.(Ereignisse编Nr.为 100-65535) 如图 6.1。

图6.1 添加Ereignisse处理
2、如何设置Datenformate
Datenformate设置其Datentyp,如图 6.2 所示。

图6.2 设置Datenformate
3、如何设置处理方法
Klicken添加Ereignisse处理方法→Klick auf“… ”Knopf弹出处理方法窗口→根据设置需求进行设置处理方法 ( 一个Ereignisse可
添加多个处理方法) ,如图 6.3 所示。

图6.3 添加Ereignisse处理方法
4、仿真演示
Empfangzu指令 AB CD 00 07 E4 00 CE D1,Das SystemZeitJahr份修改为 2020,同时界面Wechseln至 NEW2 窗口且Senden Sie指令 11 22 33 44
指令Analyse前,如图 6.4 所示

图6.4 仿真演示
指令Analyse后,如图 6.5 所示。

图6.5 仿真演示
7.如何通过Custom definiert指令Analyse触发Ereignisse
通过Custom definiert指令Analyse触发EreignisseUnterteilung为两种Typus,Unterteilung别通过Schalter!Quantität对比触发及连续Quantität直接触发
1、通过Schalter!Quantität触发,设置如下

关联变Quantität不填,帧尾Auswahl性填,其他必填,意思是当Länge,DatenLänge以及帧头 (帧尾) 符合时候,通过对比 Daten是否为 00 01 (必须与Datenformate对应) 决定是否触发编Nr.为 100 的Ereignisse
2 、直接触发,设置如下:

转换公式与关联变Quantität不填,帧尾可Auswahl性填,其他必填,当Länge,DatenLänge以及帧头 (帧尾) 符合时候直接 触发。
若有收获,就点个赞吧
Antwort veröffentlichen