İşaretli değişkenler üzerindeki kaydırma işlemlerini (bit kaydırma) algılar. Bit alanı
veri türlerinde kaydırma işlemleri söz konusu olduğunda (Byte, DWORD, LWORD, WORD), bir hata bildirilmez.
Gerekçe: CODESYS işaretli veri türleri üzerinde kaydırma işlemlerine izin verir. Ancak bu işlemler olağandışıdır ve kafa karıştırıcı olabilir. IEC 61131-3 standardı bu tür işlemleri öngörmemektedir. Bu nedenle, kodun diğer geliştirme sistemlerine taşınabilirliğini artırmak için bunlardan kaçınılmalıdır.
Önemliymiş: Orta
Örnek
PROGRAM PLC_PRG VAR iTemp : INT; dwTemp1 : DWORD; byTemp2 : BYTE; diTemp3 : DINT; siTemp4 : SINT; liTemp5 : LINT; END_VAR //the following lines each will cause an SA0052: iTemp := SHL(iTemp, BYTE#2); diTemp3 := SHR(diTemp3, BYTE#4); siTemp4 := ROL(siTemp4, BYTE#2); liTemp5 := ROR(liTemp5, BYTE#2); //no error SA0052 because DWORD and BYTE are bit field data types: dwTemp1 := SHL(dwTemp1, BYTE#3); byTemp2 := SHR(byTemp2, BYTE#1); ---> SA0052: Unusual shift operation
Ayrıca bakınız