Dear Community User! We have started the migration process.
This community is now in READ ONLY mode.
Read more: Important information on the platform change.

cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

Function Block for Random Numbers

Function Block for Random Numbers

Zeugwerker
Member

Hi,

I would like to generate random numbers in a PLC, is there a function block available to generate random numbers?

Thx in advance

3 REPLIES 3

Zeugwerker
Member

I found a library and an appropriate function block for my case:

CmpCrypto Implementation Library Documentation
Title: CmpCrypto Implementation
Version: 3.5.17.0
Author: CODESYS Development GmbH

with the function CmpCrypto_Implementation.CryptoGenerateRandomNumber(SIZEOF(u1), ADR(u1));

 

There is also a function RDM() in the OSCAT Basic library. See Codesys store for further information.

Hi,

as the implementation is a bit tricky, here is some example code.

PROGRAM PLC_PRG
VAR
	uiNumOfRandomBytes	:	UDINT	:=	4;
	Result				:	UDINT;
	udiRandom2			:	UDINT; // Random number
	bsRandomNumber : RtsByteString := (ui32MaxLen:=SIZEOF(uiNumOfRandomBytes), ui32Len:=0, pByData:=ADR(udiRandom2)); // 
END_VAR


// This code is working and generates a random number udiRandom2
Result	:=	CryptoGenerateRandomNumber(ui32NumOfRandomBytes:= uiNumOfRandomBytes, pRandom:= ADR(bsRandomNumber));

 

2022-03-01_09h42_27.png

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist